mysql--sql语言之DDL,DML
CREATE:
- 创建数据库 CREATE DATABASE 数据库名称;
- 创建数据库(判断,如果不存在则创建) CREATE DATABASE IF NOT EXISTS 数据库名称;
- 创建数据库、并指定字符集 -- 创建数据库db3、并指定字符集utf8CREATE DATABASE db3 CHARACTER SET utf8;
- 创建数据表
CREATE TABLE 表名(
列名1 数据类型1,
列名2 数据类型2,
....
列名n 数据类型n
); - 复制表
-- 复制product表到product2表
CREATE TABLE product2 LIKE product;
SHOW :
- 查询所有数据库 SHOW DATABASES;
- 查询某个数据库的创建语句(查看字符集)
-- 查看mysql数据库的创建格式
SHOW CREATE DATABASE mysql; - 查询库中所有的表 SHOW TABLES;
- 查询表字符集
-- 查看mysql数据库中user表字符集
SHOW TABLE STATUS FROM mysql LIKE 'user';
DESC:
-
查询表结构
-- 查询user表结构
DESC user;
USE:
- 使用数据库:
-- 使用db4数据库
USE db4;
ALTER:
- 修改数据库的字符集
-- 修改数据库db4的字符集为utf8
ALTER DATABASE db4 CHARACTER SET utf8; - 修改表名
-- 修改product2表名为product3
ALTER TABLE product2 RENAME TO product3; - 修改表的字符集
-- 修改product3数据表字符集为gbk
ALTER TABLE product3 CHARACTER SET gbk; - 添加一列
-- 给product3表添加一列color
ALTER TABLE product3 ADD color VARCHAR(10); - 修改列的数据类型
-- 将color数据类型修改为int
ALTER TABLE product3 MODIFY color INT; - 修改列名
-- 将color修改为address,数据类型为varchar
ALTER TABLE product3 CHANGE color address VARCHAR(30); - 删除列
-- 删除address列
ALTER TABLE product3 DROP address; - 删除主键
-- 删除主键(主键是表属性不归于那一列)
ALTER TABLE student DROP PRIMARY KEY; - 建表后单独添加主键
-- 添加主键(关于主键的去除和添加:除问上,加问下)
ALTER TABLE student MODIFY id INT PRIMARY KEY; - 删除自动增长
-- 删除自动增长
ALTER TABLE student2 MODIFY id INT; - 建表后单独添加自动增长
-- 添加自动增长
ALTER TABLE student2 MODIFY id INT AUTO_INCREMENT; - 删除唯一约束
-- 删除唯一约束
ALTER TABLE student3 DROP INDEX tel; - 建表后单独添加唯一约束
-- 添加唯一约束(唯一约束的去除和添加:除问上,加问下)
ALTER TABLE student3 MODIFY tel VARCHAR(20) UNIQUE; - 删除非空约束
-- 删除非空约束
ALTER TABLE student4 MODIFY NAME VARCHAR(20); - 建表后单独添加非空约束
-- 添加非空约束
ALTER TABLE student4 MODIFY NAME VARCHAR(20) NOT NULL; - 删除外键约束
-- 删除外键
ALTER TABLE orderlist DROP FOREIGN KEY ou_fk1; - 建表后添加外键约束
-- 添加外键约束
ALTER TABLE orderlist ADD CONSTRAINT ou_fk1 FOREIGN KEY (uid) REFERENCES USER(id); - 添加级联更新和级联删除
-- 添加外键约束,同时添加级联更新和级联删除
ALTER TABLE orderlist ADD CONSTRAINT ou_fk1 FOREIGN KEY (uid) REFERENCES USER(id) ON UPDATE CASCADE ON DELETE CASCADE; - 修改视图2的列名city_id为id(类似重新赋值)
ALTER
VIEW
city_country2 (id,city_name,cid,country_name)
AS
SELECT t1.*,t2.country_name FROM city t1,country t2 WHERE t1.cid=t2.id; - 修改表的引擎:ALTER TABLE product ENGINE=引擎名称;
ALTER总结:
- 对于数据库(表)属性的(不牵扯属于列的具体内容)使用的功能都有具体名称:character set ***;rename to ***; add; change; drop; (这些我定义为上级功能)
- 对于要修改表内属于列的具体属性使用的功能:modify(中文是微调:意为调节列的某一属性我把这个功能定义为下级功能)
INSERT INTO:
- 格式1:给指定列添加数据
-- 向product表添加指定列数据
INSERT INTO product (id,NAME,price) VALUES (2,'电脑',4999); - 格式2:默认给全部列添加数据
-- 默认给全部列添加数据
INSERT INTO product VALUES (3,'电视',2999,18,'2099-06-06'); - 格式3:批量添加数据
-- 批量添加数据
INSERT INTO product VALUES (4,'冰箱',999,26,'2099-08-08'),(5,'洗衣机',1999,32,'2099-05-10');-- 批量添加指定列数据
INSERT INTO product (id,NAME,price) VALUES (6,'微波炉',499),(7,'电磁炉',899);
UPDATE SET:
- 修改表数据语法
-- 修改手机的价格为3500
UPDATE product SET price=3500 WHERE NAME='手机';-- 修改电视的价格为1800、库存为36
UPDATE product SET price=1800,stock=36 WHERE NAME='电视';
(update set修改的是值(数据))
DELETE FROM:
- 删除表数据语法
-- 删除product表中的微波炉信息
DELETE FROM product WHERE NAME='微波炉';