主题
DDL操作
一、数据库操作
1.创建库
sql
# 语法:
create database [if not exists] 库名 [character set utf8];2.删除库
sql
# 语法:
drop database [if exists] 库名;3.查看所有库
sql
# 语法:
show databases;4.使用库
sql
#语法:
use 库名;5.注意事项
5.1 可以单行,多行书写,每一句SQL的结束标识符是英文分号
5.2 不区分大小写(建议小写)
5.3 一定要写注释
5.4 格式化代码(增加代码可看性)
二、表操作
1.数据类型和约束
1.1数据类型
整数 :int
小数 :decimal(整体的最大长度,小数的长度)
时间 :datetime(年-月-日 时:分:秒) 不限制年月日
timestamp (年-月-日 时:分:秒)从1970年01月01日00时00分01秒起
文本 :varchar (文本的长度限制)
1.2数据字段的约束
主键约束:(非空+唯一)既不能没有,也不能重复。 primary key(一个表只能用一次)
非空约束:数据不能没有
唯一约束:数据不能重复
2.建表
sql
# 建表的语法:
create table [if not exists] 表名 (
列名1 类型 [约束],
列名2 类型 [约束],
每一列信息
)[character set 字符集];注意:建表用表时用库名.表名
qrder是mysql里的关键字,不能直接使用,要么库.表名,要么表名
3.查看表
3.1查看所有表
sql
# 语法:
show tables;3.2查看指定表结构
sql
# 语法:
desc 库.表名;4.删除表
sql
# 语法:
drop table [if exists] 库名.表名;5.修改表
5.1新增列
sql
# 语法:
alter table 表名 add 列名 类型 [约束];5.2删除列
sql
# 语法:
alter table 表名 drop 列名;5.3修改列
sql
# 语法:
alter table 表名 change 旧列名 新列名 类型 [约束];
# 1.可以只改列名、类型、约束中的一个
# 2.修改 = 删除 + 新增5.4修改表名
sql
# 语法:
rename table 旧表名 to 新表名;6.表内容的清空
sql
# 语法:
truncate 库.表名三、DDL综合练习
sql
# DDL综合练习(设计一个数据库,包含多张业务表)
# 设计一个电商系统数据库(shop_db),包含以下核心功能:
# 1. 用户管理
# 2. 商品分类管理
# 3. 商品信息管理
# 4. 订单管理
# 代码实现
# 创建库shop_db
create database if not exists shop_db;
# 使用库
use shop_db;
# 创建用户表user
create table if not exists user (
user_id int primary key,
username varchar(20),
password varchar(15),
email varchar(30),
phone varchar(11)
);
# 创建商品分类表category
create table if not exists category (
category_id int primary key,
cname varchar(20),
description varchar(10)
);
# 创建商品表product
create table if not exists product (
product_id int primary key,
product_name varchar(10),
price decimal(10, 2),
category_id int
);
# 创建订单表order1
create table if not exists shop_db.order (
order_id int primary key,
user_id int,
total_amount decimal(20, 2),
status varchar(3)
);
# 查看所有表
show tables;
# 查看商品表结构
desc shop_db.product;
# 修改表操作
# 为用户表添加真实姓名列 real_name
alter table shop_db.user
add real_name varchar(20);
# 删除分列表的描述列
alter table shop_db.category
drop description;
# 重命名订单表
rename table
shop_db.order to order_info;
# 最终查看所有表
show tables;DML操作
一、插入数据
1.插入几个字段的一条数据
sql
# 语法:(顺序不能错,值要一一对应)
insert into 库.表名(字段1,字段2...) values (值1,值2...);2.插入所有字段的一条数据
sql
# 语法:(顺序不能错,值要一一对应)
insert into 库.表名 values (值1,值2...);3.插入多条数据
sql
# 语法:(顺序不能错,值要一一对应)
insert into 库.表名 values (值1,值2...),
(值1,值2...),
(值1,值2...);4.注意事项
a. 主键不能重复,也不能为空
b. 对用的值不能超过约束范围
c. 如果不写字段,必须每一个字段都要传递(值的个数和类型都要对应)
d. 非数字的内容一定要带引号(最好为单引号)
二、修改数据
1.修改一个字段的全部数据
sql
# 语法:
update 库.表名 set 字段 = 新值;2.修改某条数据的一个字段
sql
# 语法:
update 库.表名 set 字段 = 新值 where 条件;3.修改某些数据的多个字段
sql
# 语法:
update 库.表名 set 字段1 = 新值1,字段2 = 新值2,... where 条件;三、删除数据
1.删除表格全部内容
sql
# 语法:
delete from 库.表名;2.删除表格指定数据
sql
# 语法:
delete from 库.表名 where 条件;3.删除为null的数据(要用is判断,不能用=判断)
sql
delete from 库名.表名 where 字段 is null ; # 删除价格为null的数据
delete from 库名.表名 where 字段 is not null ; # 删除价格不为null的数据