数据库常用操作语法汇总

数据库操作语法总结

文章目录

      • 数据库操作语法总结
        • 为什么要学数据库?(为了找工作...( Ĭ ^ Ĭ )泪目)
      • begin:数据库表的增删改查
        • 1 . (CREATE)创建
        • 2. (DROP)删除
        • 3.(ALTER)修改
        • 4.(show)show型查询
        • 5.(INSERT INTO)插入数据
        • 6.(DELETE )删除数据(视图和表的查询语句基本上通用)
        • 7.(UPDATE SET)更新数据(视图和表的查询语句基本上通用)
        • 8.(SELECT)查询数据 (视图和表的查询语句基本上通用)

总结:1. create,drop, alter, show :

是对数据库结构的增删改查,

例如:数据库,表,视图,存储过程/函数,触发器,索引

2. insert into ,delete,update set,select:

是对数据的增删改查,例如:表数据,视图数据

为什么要学数据库?(为了找工作…( Ĭ ^ Ĭ )泪目)
  • 找到工作才对得起秃头

begin:数据库表的增删改查

1 . (CREATE)创建
1.创建数据库: create database 库名 character set utf8

2.创建数据库表:create table table1(
						列名1 数据类型1,
						列名2 数据类型2,
						....
						列名n 数据类型n
					);
					
3.创建视图: CREATE VIEW 视图名称 
          AS SELECT 
                  t1.*,t2.country_name 
          FROM 
                  city t1,country t2 
          WHERE
                  t1.cid=t2.id;		
                  
4.创建存储过程:DELIMITER $
					 CREATE PROCEDURE 存储过程名称(参数...) 
					 BEGIN  
					 ..
					 执行的sql语句;
					 .. 
		    END$
		    DELIMITER;  
            
5.创建存储函数:DELIMITER $ 
					CREATE FUNCTION 函数名称([参数 数据类型])
					RETURNS 返回值类型
					BEGIN
					..
						执行的sql语句;
					..
			RETURN 结果;
			END$
			DELIMITER ;
            
 6.创建触发器: DELIMITER $
					CREATE TRIGGER 触发器名称--(Trigger触发器)
					BEFORE|AFTER INSERT|UPDATE|DELETE  
					-- 之前|之后 插入|更新|删除(触发器类型)
					ON 表名
					[FOR EACH ROW]  -- 行级触发器
					BEGIN
						触发器要执行的功能;
			END$
			DELIMITER ;  
            
 7.创建索引: CREATE [UNIQUE|FULLTEXT] INDEX 索引名称 
				  ON 表名(列名...);           
2. (DROP)删除
1. 删除数据库: drop database db1

2. 删除数据库表: drop table table1 

3. 删除列 : ALTER TABLE product3 DROP 列名;

4. 删除视图: DROP VIEW view1

5. 删除存储过程/函数: DROP PROCEDURE/function 存储过程/函数名称;

6. 删除触发器: DROP TRIGGER 触发器名称;

7. 删除索引: DROP INDEX 索引名称 ON 表名;
	
标准语法:CREATE TABLE 表名 LIKE 被复制的表名;
例:CREATE TABLE USER LIKE users;
3.(ALTER)修改
1. 修改数据库编码: alter database db1 character set utf8

2. 修改数据库表编码: alter table table1 character set utf8

3. 修改数据库表 - 添加列: alter table table1 add 列名 数据类型

4.修改数据库表 - 修改列类型:alter table table1 modify 列名 新数据类型

5. 修改数据库表 - 修改列名和类型:alter table table1 change 列名 新列名 新数据类型

6. 修改数据库表 - 删除列: alter table table1 drop 列名

7.修改数据库表 - 添加主键:ALTER TABLE student MODIFY id INT PRIMARY KEY;

8. 修改数据库表 - 删除主键:ALTER TABLE student DROP PRIMARY KEY;

9.修改数据库表 - 添加自动增长:ALTER TABLE student1 MODIFY id INT AUTO_INCREMENT;

10.修改数据库表 - 删除自动增长:ALTER TABLE student2 MODIFY id INT;

11.修改数据库表 - 添加唯一约束:ALTER TABLE student3 MODIFY tel VARCHAR(20) UNIQUE;

12.修改数据库表 - 删除唯一约束:ALTER TABLE student3 DROP INDEX tel;

13.修改数据库表 - 添加非空约束:ALTER TABLE student4 MODIFY NAME VARCHAR(20) NOT NULL;

14.修改数据库表 - 删除非空约束:ALTER TABLE student4 MODIFY NAME VARCHAR(20);

15.修改数据库表 - 添加外键约束:ALTER TABLE orderlist ADD  FOREIGN KEY (uid) REFERENCES USER(id);

16.修改数据库表 - 删除外键约束:ALTER TABLE orderlist DROP FOREIGN KEY ou_fk1;

17.修改数据库表 - 添加索引: ALTER TABLE 表名 ADD INDEX 索引名称(列名);  -- 普通索引

18.修改视图:alter VIEW city_country AS	SELECT t1.*,t2.country_name FROM city t1,country t2 WHERE t1.cid=t2.id;
4.(show)show型查询
1. 查询所有数据库:show databases;

2. 查询数据库建库语句:show create database db1;

3. 查询所有数据库表和视图:show tables;

4. 查询建表语句: show create table table1;

5. 查询建视图语句: show create view view1;

6. 查看触发器: SHOW TRIGGERS;

7. 查看索引: SHOW INDEX FROM 表名;
5.(INSERT INTO)插入数据
1. 默认给全部列添加数据:INSERT INTO product VALUES (3,'企鹅',2999,18,'2099-06-06');

2. 添加指定列数据:INSERT INTO product (id,NAME,price) VALUES (2,'水獭',4999);

3. 添加多条数据: INSERT INTO product (id,NAME,price) VALUES (6,'北极熊',499),(7,'北极狐',899);
6.(DELETE )删除数据(视图和表的查询语句基本上通用)
1. DELETE FROM product WHERE NAME='企鹅';
7.(UPDATE SET)更新数据(视图和表的查询语句基本上通用)
1. 更新一个数据: UPDATE product SET price=3500 WHERE NAME='企鹅';

2. 更新多个数据: UPDATE product SET price=1800,stock=36 WHERE NAME='水獭';
8.(SELECT)查询数据 (视图和表的查询语句基本上通用)
1. 查询所有数据:SELECT * FROM product; 

2. 查询某几列数据: SELECT NAME,price,brand FROM product;

3. 去重查询: SELECT DISTINCT brand FROM product;

4. 范围查询: SELECT * FROM product WHERE price BETWEEN 4000 AND 6000;

5. IN查询: SELECT * FROM product WHERE stock IN(14,30,23); 

6. 模糊查询: SELECT * FROM product WHERE stock IN(14,30,23); 

7. 空查询: SELECT * FROM product WHERE stock IS NULL;

8. 聚合查询: SELECT MAX(price) FROM product;   
		    max,min count,sum,avg
9. 排序查询: SELECT * FROM product ORDER BY stock ASC;

10. 分组查询: SELECT brand,SUM(price) FROM product GROUP BY brand;

11. 分页查询: SELECT * FROM product LIMIT 0,2; (开始索引,查询条数)(公式:开始索引 = (当前页码-1) * 每页显示的条数)
    其他形式为(limit(0 offset 2)    limit(10);)
	
12. 内连接:SELECT u.name,u.age,o.number FROM user u,orderlist o WHERE u.id=o.uid;

13. 外连接:SELECT u.name,u.age,o.number FROM user u left/right outer join orderlist o WHERE u.id=o.uid;

14:子查询:SELECT NAME,age FROM USER WHERE age = (SELECT MAX(age) FROM USER);

15: 自关联查询: SELECT t1.name,	t1.mgr,t2.id,t2.name  FROM employee t1  LEFT OUTER JOIN employee t2  ON t1.mgr = t2.id;
	
16. 查看存储过程: SELECT * FROM mysql.proc WHERE db='数据库名称';

17:空值查询:select ifnull((select *...),null);-- 空值查询,空值输出为空

你可能感兴趣的:(数据库)