当前位置:Gxlcms > 数据库问题 > mysql-数据库表操作

mysql-数据库表操作

时间:2021-07-01 10:21:17 帮助过:23人阅读

技术分享
  1. 语法:
  2. create table 表名(
  3. 字段名1 类型[(宽度) 约束条件],
  4. 字段名2 类型[(宽度) 约束条件],
  5. 字段名3 类型[(宽度) 约束条件]
  6. );
  7. 注意:
  8. 1. 在同一张表中,字段名是不能相同
  9. 2. 宽度和约束条件可选
  10. 3. 字段名和类型是必须的
技术分享 技术分享

 

技术分享

技术分享
  1. MariaDB [(none)]><span style="color: #000000"> create database db1 charset utf8;
  2. MariaDB [(none)]><span style="color: #000000"> use db1;
  3. MariaDB [db1]><span style="color: #000000"> create table t1(
  4. -><span style="color: #000000"> id int,
  5. -> name varchar(50<span style="color: #000000">),
  6. -> sex enum(<span style="color: #800000">‘<span style="color: #800000">male<span style="color: #800000">‘,<span style="color: #800000">‘<span style="color: #800000">female<span style="color: #800000">‘<span style="color: #000000">),
  7. -> age int(3<span style="color: #000000">)
  8. -><span style="color: #000000"> );
  9. MariaDB [db1]> show tables; <span style="color: #008000">#<span style="color: #008000">查看db1库下所有表名
  10. <span style="color: #000000">
  11. MariaDB [db1]><span style="color: #000000"> desc t1;
  12. +-------+-----------------------+------+-----+---------+-------+
  13. | Field | Type | Null | Key | Default | Extra |
  14. +-------+-----------------------+------+-----+---------+-------+
  15. | id | int(11) | YES | | NULL | |
  16. | name | varchar(50) | YES | | NULL | |
  17. | sex | enum(<span style="color: #800000">‘<span style="color: #800000">male<span style="color: #800000">‘,<span style="color: #800000">‘<span style="color: #800000">female<span style="color: #800000">‘) | YES | | NULL | |
  18. | age | int(3) | YES | | NULL | |
  19. +-------+-----------------------+------+-----+---------+-------+<span style="color: #000000">
  20. MariaDB [db1]> select id,name,sex,age <span style="color: #0000ff">from<span style="color: #000000"> t1;
  21. Empty set (0.00<span style="color: #000000"> sec)
  22. MariaDB [db1]> select * <span style="color: #0000ff">from<span style="color: #000000"> t1;
  23. Empty set (0.00<span style="color: #000000"> sec)
  24. MariaDB [db1]> select id,name <span style="color: #0000ff">from<span style="color: #000000"> t1;
  25. Empty set (0.00 sec)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
技术分享 技术分享
  1. MariaDB [db1]><span style="color: #000000"> insert into t1 values
  2. -> (1,<span style="color: #800000">‘<span style="color: #800000">egon<span style="color: #800000">‘,18,<span style="color: #800000">‘<span style="color: #800000">male<span style="color: #800000">‘<span style="color: #000000">),
  3. -> (2,<span style="color: #800000">‘<span style="color: #800000">alex<span style="color: #800000">‘,81,<span style="color: #800000">‘<span style="color: #800000">female<span style="color: #800000">‘<span style="color: #000000">)
  4. -><span style="color: #000000"> ;
  5. MariaDB [db1]> select * <span style="color: #0000ff">from<span style="color: #000000"> t1;
  6. +------+------+------+--------+
  7. | id | name | age | sex |
  8. +------+------+------+--------+
  9. | 1 | egon | 18 | male |
  10. | 2 | alex | 81 | female |
  11. +------+------+------+--------+<span style="color: #000000">
  12. MariaDB [db1]><span style="color: #000000"> insert into t1(id) values
  13. -> (3<span style="color: #000000">),
  14. -> (4<span style="color: #000000">);
  15. MariaDB [db1]> select * <span style="color: #0000ff">from<span style="color: #000000"> t1;
  16. +------+------+------+--------+
  17. | id | name | age | sex |
  18. +------+------+------+--------+
  19. | 1 | egon | 18 | male |
  20. | 2 | alex | 81 | female |
  21. | 3 | NULL | NULL | NULL |
  22. | 4 | NULL | NULL | NULL |
  23. +------+------+------+--------+<span style="color: #000000"><br></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
技术分享 技术分享
  1. mysql><span style="color: #000000"> create database db1 charset latin1;
  2. mysql><span style="color: #000000"> use db1;
  3. mysql> create table t1(name varchar(20<span style="color: #000000">));
  4. mysql> show create table t1; <span style="color: #008000">#<span style="color: #008000">查看表,发现表默认与数据db1的字符编码一致
  5. mysql> insert into t1 values(<span style="color: #800000">‘<span style="color: #800000">林<span style="color: #800000">‘); <span style="color: #008000">#<span style="color: #008000">插入中文出错,因为latin1不支持中文
  6. ERROR 1366<span style="color: #000000"> (HY000):
  7. mysql>
  8. <span style="color: #008000">#<span style="color: #008000">解决方法一:删除库db1,重建db1,字符编码指定为utf8
  9. <span style="color: #008000">#<span style="color: #008000">解决方法二:修改
  10. mysql> alter table t1 charset utf8; <span style="color: #008000">#<span style="color: #008000">修改表t1的编码
  11. mysql> insert into t1 values(<span style="color: #800000">‘<span style="color: #800000">林<span style="color: #800000">‘); <span style="color: #008000">#<span style="color: #008000">虽然t1的编码改了,但是t1的字段name仍然是按照latin1编码创建的
  12. ERROR 1366<span style="color: #000000"> (HY000):
  13. mysql> alter table t1 modify name varchar(20); <span style="color: #008000">#<span style="color: #008000">需要重新定义下字段name
  14. mysql> insert into t1 values(<span style="color: #800000">‘<span style="color: #800000">林<span style="color: #800000">‘<span style="color: #000000">);
  15. mysql> select * <span style="color: #0000ff">from<span style="color: #000000"> t1;
  16. +------+
  17. | name |
  18. +------+
  19. | 林 |
  20. +------+<span style="color: #000000">
  21. ps:不要忘记将数据库编码也改成utf8,这样以后在该数据库下创建表时,都默认utf8编码了
  22. <span style="color: #008000">#<span style="color: #008000">配置文件:http://blog.csdn.net/yipiankongbai/article/details/16937815</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
技术分享 技术分享
  1. <span style="color: #008000">#<span style="color: #008000">1. 修改配置文件
  2. <span style="color: #000000">[mysqld]
  3. default-character-set=<span style="color: #000000">utf8
  4. [client]
  5. default-character-set=<span style="color: #000000">utf8
  6. [mysql]
  7. default-character-set=<span style="color: #000000">utf8
  8. <span style="color: #008000">#<span style="color: #008000">mysql5.5以上:修改方式有所改动
  9. <span style="color: #000000"> [mysqld]
  10. character-set-server=<span style="color: #000000">utf8
  11. collation-server=<span style="color: #000000">utf8_general_ci
  12. [client]
  13. default-character-set=<span style="color: #000000">utf8
  14. [mysql]
  15. default-character-set=<span style="color: #000000">utf8
  16. <span style="color: #008000">#<span style="color: #008000">2. 重启服务<span style="color: #008000">
  17. #<span style="color: #008000">3. 查看修改结果:
  18. <span style="color: #000000">\s
  19. show variables like <span style="color: #800000">‘<span style="color: #800000">%char%<span style="color: #800000">‘</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
技术分享

 

注意注意注意:表中的最后一个字段不要加逗号 

 

二 查看表结构

技术分享 技术分享
  1. MariaDB [db1]> describe t1; #查看表结构,可简写为desc 表名
  2. +-------+-----------------------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. +-------+-----------------------+------+-----+---------+-------+
  5. | id | int(11) | YES | | NULL | |
  6. | name | varchar(50) | YES | | NULL | |
  7. | sex | enum(‘male‘,‘female‘) | YES | | NULL | |
  8. | age | int(3) | YES | | NULL | |
  9. +-------+-----------------------+------+-----+---------+-------+
  10. MariaDB [db1]> show create table t1\G; #查看表详细结构,可加\G
技术分享 技术分享

 

三 数据类型

http://www.cnblogs.com/liluning/p/7489710.html

四 表完整性约束

http://www.cnblogs.com/liluning/p/7489852.html

五 修改表ALTER TABLE

技术分享 技术分享
  1. 语法:
  2. 1. 修改表名
  3. ALTER TABLE 表名
  4. RENAME 新表名;
  5. 2. 增加字段
  6. ALTER TABLE 表名
  7. ADD 字段名 数据类型 [完整性约束条件…],
  8. ADD 字段名 数据类型 [完整性约束条件…];
  9. ALTER TABLE 表名
  10. ADD 字段名 数据类型 [完整性约束条件…] FIRST;
  11.   ALTER TABLE 表名
  12. ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
  13. 3. 删除字段
  14. ALTER TABLE 表名
  15. DROP 字段名;
  16. 4. 修改字段
  17. ALTER TABLE 表名
  18. MODIFY 字段名 数据类型 [完整性约束条件…];
  19. ALTER TABLE 表名
  20. CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
  21. ALTER TABLE 表名
  22. CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
  23. 示例:
  24. 1. 修改存储引擎
  25. mysql> alter table service
  26. -> engine=innodb;
  27. 2. 添加字段
  28. mysql> alter table student10
  29. -> add name varchar(20) not null,
  30. -> add age int(3) not null default 22;
  31. mysql> alter table student10
  32. -> add stu_num varchar(10) not null after name; //添加name字段之后
  33. mysql> alter table student10
  34. -> add sex enum(‘male‘,‘female‘) default ‘male‘ first; //添加到最前面
  35. 3. 删除字段
  36. mysql> alter table student10
  37. -> drop sex;
  38. mysql> alter table service
  39. -> drop mac;
  40. 4. 修改字段类型modify
  41. mysql> alter table student10
  42. -> modify age int(3);
  43. mysql> alter table student10
  44. -> modify id int(11) not null primary key auto_increment; //修改为主键
  45. 5. 增加约束(针对已有的主键增加auto_increment)
  46. mysql> alter table student10 modify id int(11) not null primary key auto_increment;
  47. ERROR 1068 (42000): Multiple primary key defined
  48. mysql> alter table student10 modify id int(11) not null auto_increment;
  49. Query OK, 0 rows affected (0.01 sec)
  50. Records: 0 Duplicates: 0 Warnings: 0
  51. 6. 对已经存在的表增加复合主键
  52. mysql> alter table service2
  53. -> add primary key(host_ip,port);
  54. 7. 增加主键
  55. mysql> alter table student1
  56. -> modify name varchar(10) not null primary key;
  57. 8. 增加主键和自动增长
  58. mysql> alter table student1
  59. -> modify id int not null primary key auto_increment;
  60. 9. 删除主键
  61. a. 删除自增约束
  62. mysql> alter table student10 modify id int(11) not null;
  63. b. 删除主键
  64. mysql> alter table student10
  65. -> drop primary key;
技术分享 技术分享

 

六 复制表

技术分享 技术分享
  1. 复制表结构+记录 (key不会复制: 主键、外键和索引)
  2. mysql> create table new_service select * from service;
  3. 只复制表结构
  4. mysql> select * from service where 1=2; //条件为假,查不到任何记录
  5. Empty set (0.00 sec)
  6. mysql> create table new1_service select * from service where 1=2;
  7. Query OK, 0 rows affected (0.00 sec)
  8. Records: 0 Duplicates: 0 Warnings: 0
  9. mysql> create table t4 like employees;
技术分享

mysql-数据库表操作

标签:logs   ror   add   必须   class   ima   存储引擎   nod   逗号   

人气教程排行