**
一、 create
**
1.创建数据库:
create database db1 character set utf8
2.创建数据库表:
create table tab1(
列名1 数据类型1,
列名2 数据类型2,
....
列名n 数据类型n
);
3.创建视图:
CREATE VIEW city_country AS SELECT t1.*,t2.country_name FROM city t1,country t2 WHERE t1.cid=t2.id;
4.创建存储过程:
DELIMITER $
CREATE PROCEDURE 存储过程名称(参数...)
BEGIN .... 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 表名(列名...);
二、 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 表名;
三、 alter
1.修改数据库编码:
alter database db1 character set utf8
2.修改数据库表编码:
alter table tab1 character set utf8
修改数据库表 - 添加列:
alter table tab1 add 列名 数据类型
修改数据库表 - 修改列类型:
alter table tab1 modify 列名 新数据类型
修改数据库表 - 修改列名和类型:
alter table tab1 change 列名 新列名 新数据类型
修改数据库表 - 删除列:
alter table tab1 drop 列名
修改数据库表 - 添加主键:
ALTER TABLE student MODIFY id INT PRIMARY KEY;
修改数据库表 - 删除主键:
ALTER TABLE student DROP PRIMARY KEY;
修改数据库表 - 添加自动增长:
ALTER TABLE student2 MODIFY id INT AUTO_INCREMENT;
修改数据库表 - 删除自动增长:
ALTER TABLE student2 MODIFY id INT;
修改数据库表 - 添加唯一约束:
ALTER TABLE student3 MODIFY tel VARCHAR(20) UNIQUE;
修改数据库表 - 删除唯一约束:
ALTER TABLE student3 DROP INDEX tel;
修改数据库表 - 添加非空约束:
ALTER TABLE student4 MODIFY NAME VARCHAR(20) NOT NULL;
修改数据库表 - 删除非空约束:
ALTER TABLE student4 MODIFY NAME VARCHAR(20);
修改数据库表 - 添加外键约束:
ALTER TABLE orderlist ADD FOREIGN KEY (uid) REFERENCES USER(id);
修改数据库表 - 删除外键约束:
ALTER TABLE orderlist DROP FOREIGN KEY ou_fk1;
修改数据库表 - 添加索引:
ALTER TABLE 表名 ADD INDEX 索引名称(列名); -- 普通索引
3.修改视图:
alter VIEW city_country AS SELECT t1.*,t2.country_name FROM city t1,country t2 WHERE t1.cid=t2.id;
四、 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 表名;
------------------------------以上是数据库结构的操作,以下是数据操作-----------------------------------
五、 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);
六、 delete :删除数据 (视图和表的查询语句基本上通用)
DELETE FROM product WHERE NAME='微波炉';
七、 update set更新数据 (视图和表的查询语句基本上通用)
1.更新一个数据:
UPDATE product SET price=3500 WHERE NAME='手机';
2.更新多个数据:
UPDATE product SET price=1800,stock=36 WHERE NAME='电视';
八、 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) * 每页显示的条数)
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='数据库名称';
九、总结:
1. create,drop, alter, show :
是对数据库结构的增删改查,例如:数据库,表,视图,存储过程/函数,触发器,索引
2. insert into values, delete from,update set,select from:
是对数据的增删改查,例如:表数据,视图数据
本文全面介绍了SQL语言的基础操作,包括数据库结构的创建、修改、删除、查询,以及数据的插入、删除、更新和查询等核心功能。涵盖了从数据库、表、视图到存储过程、函数、触发器和索引的全方位管理,是SQL初学者和专业人员的实用指南。
&spm=1001.2101.3001.5002&articleId=108484432&d=1&t=3&u=8424357eccb44f7880985ef7a3b8245e)
3369

被折叠的 条评论
为什么被折叠?



