MySQL学习笔记(一)

初学MySQL,感觉SQL语句还是有点多,在此做一些MySQL的基础笔记,以防忘记。

1. 连接数据库: mysql -h hostname -u username -p

默认情况下是连接本地的数据库,所以上面可以简写为:mysql -u  root -p

2. 显示数据库:SHOW DATABASES;

3. 创建数据库:CREATE DATABASE db1;

4. 删除数据库:DROP DATABASE db1;

4. 使用某一数据库:USE db1;

5. 显示该数据库中所有的表:SHOW TABLES;

6. 创建表:CREATE TABLE  <表名> (字段 数据类型 [约束条件] [默认值/其他属性] );

这里讲解常用的约束:

(1)主键约束,可以加快查询速度,要求主键列的数据唯一且不为空。一种是上面的设置方式,另为一种是在字段的最后加上:PRIMARY KEY [字段1,字段2,...]  

(2)外键约束,建立两个数据表之间的链接,它是表中的一个字段,对应另一个表的主键,其作用是保持数据的一致性与完整性。涉及的主表与从表概念:主表(父表):相关联字段中主键所在的那个表;从表(子表):相关联字段中外键所在的那个表。子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配。语法规则如下:CONSTRAINT <外键名> FOREIGN KEY [字段1,字段2,...] REFERENCES <主键名> [主键列1,主键列2,...]

(3)非空约束:指定字段的值不为空,语法:NOT NULL

(4)唯一性约束:指明该列唯一,允许为空,但只能有一个空值,它与主键的区别是:一个表只允许存在一个主键,且主键列不许为空,而声明UNIQUE的字段可以有多个,且允许为空。它使用与主键一样,可以在数据类型后面加上,也可以在所有字段后面加上 CONSTRAINT <约束名> UNIQUE (字段名)  

(5)默认约束:定义默认值,使用DEFAULT关键词。

   当然还有一个设置自动增加的属性:AUTO_INCREMENT。一个表只允许有一个AUTO_INCREMENT,且它必须为主键的一部分。其字段的数据类型可以为任意整型类型(TINYINT、SMALLIN、INT、BIGINT等)。

7. 查看表结构:DESC tab1;

当需要查看创建表的详细信息时,可以使用:SHOW CREATE TABLE tab1\G;

8. 修改表名:ALTER TABLE <旧表名> RENAME <新表名>;

9. 修改字段名:ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

10. 修改字段的数据结构:ALTER TABLE <表名> MODIFY <字段名> <数据类型>;

11. 添加字段:ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [字段位置属性];

这里的字段位置属性是指新添加的字段在表中的顺序,可以指定为表的第一列:FIRST,也可以指定在某一列的后面:AFTER line。当然也可以使用下面的语句修改字段的排列位置。

12. 修改字段的排列位置:LATER TABLE <表名> MODIFY <字段1> <字段1数据类型> FIRST | AFTER <字段2>;

这里还加上了字段1数据类型,所以通过这种方法也可以修改字段1的数据类型。

13. 删除字段:ALTER TABLE <表名> DROP <字段名>;

14. 删除外键约束:ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;

外键约束关联到其他的表,在这种情况下,如果直接删除父表会失败,所以可以先解除外键关联,再删除主表。

15. 删除表:DROP TABLE IF EXITS tab1;

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。