mysql数据库语法整理

花括号{} 在其中选择

方括号[] 可选可不选

1.登录mysql 

        mysql -u(用户名) -p(密码) -P(端口号)-h(服务器名称)

        mysql -uroot -proot -P3306 -h127.0.0.1(本地回环地址)

        


2.退出mysql

        exit;

        quit;

        \q;

        

3.创建数据库

        CREATE {DATABASE |  SCHEMA} [IF NOT EXISTS] db_name;

        CREATE DATABSE t1;

        


4.删除数据库

        DROP {DATABASE | SCHEMA} [IF NOT EXISTS] db_name;

        DROP DATABASE t1;

        


5.显示所有数据库

        SHOW DATABASES;

        


6.使用数据库

        USE 数据库名称;

        


7.当前打开数据库

        SELECT DATABASE();

        


8.创建数据表

        CREATE TABLE [IF NOT EXISTS] table_name(

            column_name data_type,

            ...

        );


        CREATE TABLE tb1(

            username VARCHAR(20),

            age TINYINT UNSIGNED;

            salary FLOAT(8,2) UNSIGNED

        );  

        


9.查看数据表列表

        SHOW TABLES [FROM db_name];

        

        除了查看当前数据库中的数据表列表,还能查看别的数据库中的数据表列表:

        SHOW TABLES [FROM mysql];

        


10.查看数据表结构

        SHOW COLUMNS FROM tbI_name;

        SHOW COLUMNS FROM tb1;

                


11.数据表的插入记录

        INSERT [INTO] tbI_name [(col_name, ...)] VALUES(val, ...);

        (1).省略所有字段

            INSERT tb1 VALUES('TOM', 25, 7863.25);

            

        (2).指定字段

            INSERT tb1(username, salary) VALUES('John', 4500.63);

            

12.数据表的查找

        SELECT expr,... FROM tb1_name;

        SELECT * FROM tb1;  (*代表字段的过滤)

        

13.修改数据表

        添加单列:

        ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST | AFRER col_name]

        FIRST 将你添加的这一列添加到最前面

        AFTER col_name 将你写的这一列添加到col_name这一列的后方

        如果省略,你加入的列将加入到所有列的后面

        

        

        

        添加多列:

        ALTER TABLE tbl_name ADD[COLUMN](col_name column_definition,...)

        只能在原来数据表下方添加,不能指定位置关系。

        

        删除单列:

        ALTER TABLE tbl_name DROP [COLUMN] col_name;

        

        删除多列:

        ALTER TABLE tbl_name DROP [COLUMN] col_name1,DROP [COLUMN] col_name2,...;

        

        删除一列并新增一列:

       ALTER TABLE tbl_name DROP [COLUMN] col_name1,ADD [COLUMN] col_name column_definition [FIRST | AFRER col_name];

       组合操作,只需要用逗号隔开

                


        增加主键约束:

        ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)

        


        添加唯一约束:

   ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)

        

        添加外键约束:

   ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] FOREIGN KEY [index_name] [index_type] (index_col_name,...)


14.修改表中数据

        UPDATE (表名) SET (要修改的数据) (过滤条件)

        UPDATE student SET name = '张三' WHERE id = 1;

                

13.空值与非空值

        NULL,字段值可以为空;

        NOT NULL, 字段值禁止为空

        在创建数据表时,可以指定属性可为空或不可为空,如果不可为空,在赋值的时候就不能把属性赋为NULL

        

        此时,username不可以为空,age可以为空

        

        


14.自动编号和主键约束

        AUTO_INCREMENT 和 PRIMAR KEY

        每张数据表只能存在一个主键,主键保证记录的唯一性,意味着主键字段的赋值不能相同

        主键自动为NOT NULL

        自动编号必须和主键一同使用,但是主键可以单独使用。

        创造了一个数据表,其中字段id是自动编号并且为主键,只需输入username的值;

        

        

        我们只输入username的值,ID自动编号了。

        再创建一张数据表,字段id为主键但是不自动编号

        

        

        不能为主键字段赋相同的值。

15.唯一约束

        UNIQUE KEY

        唯一约束也可以保证记录的唯一性

        唯一约束的字段可以为空值(NULL)

        每张数据表可以存在多个唯一约束

        

        

16.默认约束

        DEFAULT

        当插入记录时,如果没有明确为字段赋值,则自动赋予默认值

        

        在这张数据表中,sex字段从1,2,3中选择,其默认值为3

        

        我们没有赋值给sex字段,系统将其默认赋值为3

17.外键约束

        FOREIGN KEYp

        保持数据一致性,完整性

        实现一对一或一对多的关系

        外键约束的要求

        1.父表和子表必须使用相同的存储引擎,而且禁止使用临时表。

        2.数据表的存储引擎只能为InnoDB。

        3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。

        4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引。

        创建父表provinves

        

        创建子表users

        

        有外键的这张表称为子表,子表所参照的表称为父表

        pid称为外键列,id称为参照列,他们必须有相同或相似的数据类型

        

        外键约束的参照操作

        1.CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行

        2.SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL

        3.RESTRICT:拒绝对父表的删除或更新操作。

        4.NO ACTION:标准SQL关键字在,在MySQL中与RESTRICT相同。

        创建CASCADE操作的子表users1

        

        在父表中添加数据

        

        在子表users1中添加数据

        

        删除父表中id为3的数据

        

        

        我们发现子表中pid为3的数据也一并删除了,因为我们子表约束操作为CASCADE,在删除父表中某个约束值时,子表也会同时删除该记录。

18.表级约束和列级约束

        对一个数据列建立的约束,称为列级约束

        对多个数据列建立的约束,称为表级约束

        列级约束既可以在列定义时声明,也可以在列定义后声明

        表级约束只能在列定义后声明





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值