数据库sql操作语法

1.DDL(对数据库和表的操作)

1.查询所有数据库:SHOW DATABASES;

2.创建数据库:CREATE DATABASE 库名;

3.创建数据库(常用,加一个判断是否存在语句):CREATE DATABASE IF NOT EXISTS 库名;

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

5.删除数据库(常用,加一个判断是否存在语句):DROP DATABASE IF NOT EXISTS 库名;

6.使用数据库:USE 库名;

7.查看使用的数据库:SELECT DATABASE();

表:

8.查询当前数据库中所有的表名:SHOW TABLES;

9.查询表的结构:DESC 表名;

10.创建表:CREATE TABLE 表名(

        字段1   数据类型1,字段2 数据类型2

);

11.删除表:DROP TABLE 表名;

12.修改表名:ALTER TABLE 表名 RENAME TO 新的表名;

13.添加表的列:ALTER TABLE 表名 ADD 列名 数据类型;

14.修改数据类型:ALTER TABLE 表名 MODIFY 新数据类型;

15.修改列名和数据类型:ALTER TABLE 表名 CHANGE 列名 新列名 新数据结构;

16.删除列:ALTER TABLE 表名 DROP 列名;

2.DML(对表的数据进行增删改)

1.指定列添加数据:INSERT INTO 表名 (列名1,列名2,...)VALUES(值1,值2,...) ;

2.全部列添加数据:INSERT INTO 表名 VALUES(值1,值2,...);

3.批量添加数据:INSERT INTO 表名 (列名1,列名2,...)VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...) ;

INSERT INTO 表名 VALUES(值1,值2,...),(值1,值2,...),(值1,值2,...);

4.删除数据:DELETE  FROM 表名 【WHERE 条件】;

5.修改表的数据:UPDATE 表名 SET 列名1=值1,列名2=值2,... 【WHERE 条件】;

3.DQL(对表中数据进行查询)

1.基本查询:SELECT 字段 FROM 表名 【WHERE 条件, GROUP BY 分组,HAVING 分组后条件,ORDER BY 排序字段,LIMIT 分页限定】;

2.条件查询:SELECT 字段 FROM 表名 WHERE 条件;

注:判断是不是null 不能用=null  应该使用 is not null 或者is null;like模糊查询可以用来判断值是不是包含某个字符“%关键字%”; 

3.排序查询:SELECT 字段 FROM 表名 ORDER BY 排序字段1【方式1】,排序字段2【方式2】...;   ASC升序(默认),DESC降序。排序优先级从左向右。

4.聚合函数:

 5.分组查询:SELECT 字段 FROM 表名 【WHERE 条件】 GROUP BY 分组字段名【HAVING 分组后再进行条件过滤】

6.分页查询:SELECT 字段 FROM 表名 LIMIT 起始索引,查询条目数;

MYSQL用limit

Orale用rownumber

SQL server用top 

4.DCL(对数据库的权限控制)

5.约束

自动增长:auto_increment(必须是数字类型而且有唯一约束或主键约束)   

可以在创建表时添加,直接写在在数据类型后面就可。

建表后在进行添加时如下,

非空约束:(1)添加约束   ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;

(2)删除约束   ALTER TABLE 表名 MODIFY 字段名 数据类型;

唯一约束:(1)添加约束   ALTER TABLE 表名 MODIFY 字段名 数据类型 UNIQUE;

(2)删除约束   ALTER TABLE 表名 DROP INDEX 字段名; 

主键约束:(1)添加约束   ALTER TABLE 表名 ADD PRIMARY KEY(字段名);

(2)删除约束   ALTER TABLE 表名 DROP PRIMARY KEY; 

默认约束:(1)ALTER TABLE 表名 ALTER 列名 SET DEFAULT 默认值;

(2)删除约束  ALTER TABLE 表名 ALTER 列名 DROP DEFAULT;

外键约束:(1)添加约束  CREATE TABLE 表名(

        列名 数据类型,

        列名 数据类型,....

【CONSTRAINT】[外键名称] FOREIGN KEY(外键列名)REFERENCES 主表(主表列名)

);

(2)添加约束  ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键列名)REFERENCES 主表(主表列名);

(3)删除约束  ALTER TABLE 表名 DROP FPREIGN KEY 外键名称;

6.多表查询

隐式内连接:SELECT  字段列表  FROM 表1,表2  WHERE 条件;

显式内连接:SELECT  字段列表  FROM 表1 【INNER】 JOIN 表2 ON 条件;

左外连接:SELECT  字段列表  FROM 表1 LEFT 【OUTER】 JOIN 表2 ON 条件;

右外连接:SELECT  字段列表  FROM 表1 RIGHT 【OUTER】 JOIN 表2 ON 条件;

7.子查询

单行单列:SELECT  字段列表  FROM 表 WHERE 字段名 = (子查询);作为条件值

多行单列:SELECT  字段列表  FROM 表 WHERE 字段名 in(子查询);作为条件值

多行多列:SELECT  字段列表  FROM (子查询)WHERE 条件; 作为虚拟表        

8.事务

开启事务:START TRANSACTION 或者 BEGIN;

提交事务:COMMIT;

回滚事务:ROLLBACK; 

9.数据库设计(一对一,一对多,多对多)

1.如何实现1对N

假设A表中的一条信息对应B表中的多条信息,则设置A表为主表,B表为附表,在B表创建时可以建立外键,或者单独使用语句创建外键。

2.如何实现1对1

假设A表的一条信息对应B表的一条信息,则可以在A表中整一列(唯一约束)在外键到B表里,以B表为主表,A表为附表。

3.如何实现N对N

假设A表中N条信息对应B表中N条信息,可以设置一个中间表C,找两个列,一个外键A表,一个外键B表,A和B为主表,C是他俩的附表。

猜你喜欢

转载自blog.csdn.net/jjxcsdn/article/details/124919988
今日推荐