1.sql的通用语法
- SQL语句可以单行或多行书写,以分号结尾。
- SQL语句可以使用空格/缩进来增强语句的可读性。
- MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
- 注释:
单行注释:–注释内容或#注释内容(MySQL特有)
多行注释:/注释内容/
2.sql分类
2.1DDL
2.1.1 DDL-数据库操作
- 查询
查询所有数据库
SHOW DATABASES;
查询当前库
SELECT DATABASE();
- 创建
CREATE DATABASE[IF NOT EXISTS]数据库名[DEFAULT CHARSET 字符集][COLLATE 排序规则]
例子
CREATE DATABASE IF NOT EXISTS test1112 DEFAULT CHARSET utf8mb4;
- 删除
DROP DATABASE [IF EXISTS] 数据库名
DROP DATABASE IF EXISTS test111
- 使用(切换数据库)
use 数据库名
- 修改数据库编码
ALTER DATABASE 数据库名称 CHARACTER SET utf8mb4
2.1.2 DDL 数据库表操作
- 查询当前数据库所有表
show tables;
- 查询表结构
DESC 表名;
- 查看指定表的建表语句
SHOW CREATE TABLE 表名;
- 创建表
create table [if not exists]表名(
字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],
字段名3 类型[(宽度)] [约束条件] [comment '字段说明'],
...
字段n 类型[(宽度)] [约束条件] [comment '字段说明']
)[表的一些设置];
注意:
- […]为可选参数,最后一个字段后面没有逗号
- 创建表是构建一张空表,指定这个表的名字,这个表有几列,每一列叫什么名字,以及每一列存储的数据类型。
案例
#此案例只是简单使用
# 1.选择使用的数据库
use mydb1;
# 2.创建student表
create table if not exists student(
sid int,
name varchar(20),
gender varchar(20),
age int,
birth date,
address varchar(20),
score double
);
数据库表中数据类型
1. 数据类型的解释
数据类型是指在创建表的时候为表中字段指定数据类型,只有数据符合类型要求才能存储起来,使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。
MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
- 数值类型
补充: tinyint unsigned 就代表无符号的范围 0-255 E+38代表 10的38次方
比如年龄的设定
age tinyint unsigned
score的设定
# 4代表数据的最大长度,1代表小数点后数字的个数 110.5
score double(4,1)
-
字符串类型
-
日期时间类型
对表结构的常用操作-修改表结构格式
1. 修改表添加列
语法格式
alter table 表名 add 列名 类型(长度) [约束];
例子:
#为student表添加一个新的字段为:系别 dept 类型为 varchar(20)
ALTER TABLE student ADD COLUMN dept VARCHAR(20)
2. 修改列名和类型
语法格式
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
例子:
#为student表的dept字段更换为department varchar(30)
ALTER TABLE student CHANGE COLUMN dept department VARCHAR(30)
3. 修改表删除列.
语法格式:
alter table 表名 drop 列名;
例子
ALTER TABLE student DROP department;
4. 修改表名
语法格式:
rename table 表名 to 新表名;
例子:
#将表student改名成 stu
RENAME TABLE student TO stu;
2.2. DML
2.2.1 基本介绍
DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的数据记录进行更新。关键字
插入insert,删除delete,更新update
2.2.2 具体操作,增删改
1. 数据插入
语法格式:
insert into 表 (列名1,列名2,列名3...) values (值1,值2,值3...); //向表中插入某些
insert into 表 values (值1,值2,值3...); //向表中插入所有列
案例
insert into student(sid,name,gender,age,birth,address,score)
values(1001,'男',18,'1996-12-23','北京',83.5);
insert into student values(1001,'男',18,'1996-12-23','北京',83.5);
2. 数据修改
语法格式:
update 表名 set 字段名=值,字段名=值...;
update 表名 set 字段名=值,字段名=值... where 条件;
例子:
# 将所有学生的地址修改为重庆
update student set address = '重庆’;
# 讲id为1004的学生的地址修改为北京
update student set address = '北京' where id = 1004
-- 讲id为1005的学生的地址修改为北京,成绩修成绩修改为100
update student set address = '广州',score=100 where id = 1005
3. 数据删除
语法格式
delete from 表名 [where 条件];
truncate table 表名 或者 truncate 表名
例子
-- 1.删除sid为1004的学生数据
delete from student where sid = 1004;
-- 2.删除表所有数据
delete from student;
-- 3.清空表数据
truncate table student;
truncate student;
注意:delete和truncate原理不同,delete只删除内容,而truncate类似于drop table ,可以理解为是将整个表删除,然后再创建该表;