SQL语言
DDL语句01:数据库操作
查询数据库
1,查询数据库
查询所有数据库
show DATABASES;
创建数据库
2,创建数据库
create DATABASE 数据库名;
创建数据库,不存在创建,存在不创建;
CREATE DATABASE IF NOT EXISTS 数据库名;
创建数据库时指定编码格式
CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET '编码格式'
列如:
创建数据库为mydatabase的数据库
create database mydatabase;
修改数据库编码格式
3,修改数据库编码格式
ALTER DATABASE IF NOT EXISTS 数据库名 CHARACTER SET '修改编码格式'
删除数据库
4,删除数据库
DROP DATABASE 数据库名;
数据库存在就删除,不存在就不删除
DROP DATABASE IF EXISTS 数据库名;
切换数据库
5,切库
USE 数据库名称;
DDL语句02:表操作
查询表
SHOW TABLES;
DESC 表名;
列如:
desc student;
创建表
创建表
CREATE TABLE 表名(
字段名1 数据类型 [约束1]...,
字段名2 数据类型 [约束1]...,
字段名3 数据类型 [约束1]...,
...
字段名n 数据类型 [约束1]...
);
注意:
1,最后一个字段不用写,号
2,一个字段可以有多个约束,也可以没有约束
3,表的编码格式,默认跟随所在数据库的编码格式
CREATE TABLE stu(
s_id int primary key auto_increment,
s_name VARCHAR(50) not null,
s_sex VARCHAR(10),
s_age INT,
s_tel VARCHAR(30),
s_qq VARCHAR(20)
...
);
修改表
ALTER TABLE 要修改的表名 RENAME TO 修改后的表名;
例如:
ALTER TABLE stu RENAME TO students;
ALTER TABLE 表名 CHARACTER set '编码格式';
例如:
ALTER TABLE students CHARACTER set 'utf8';
ALTER TABLE 表名 ADD 要添加的字段名 数据类型;
例如:
ALTER TABLE students ADD s_num INT;
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型;
例如:
ALTER TABLE students CHANGE s_num s_number INT;
ALTER TABLE 表名 MODIFY 字段名 更改后的数据类型;
例如:
ALTER TABLE students MODIFY s_number INT;
ALTER TABLE 表名 DROP 要删除的字段名
例如:
ALTER TABLE students DROP s_number;
删除表
DROP table students;
DML数据操作语言
增加数据
insert into 表名(列名1,列名2...)values(值1,值2...)
注意:
列如:
insert into student(s_id,s_name,s_asex,s_age,s_tel)
values(19480111,'焦龙飞','男',21,'18209496554');
修改数据
update 表名 set 列名1 = 值1,列名2 = 值2 [where 条件];
注意:
不加where条件,将给该表中所有行
列如:
update student set s_age = 22 where s_id =19480111;
删除数据
delete from 表名 [where 条件];
注意
不加条件,将删除表中所有的数据(敏感操作)
列如;
delete from student where s_sge<18;
约束键
常用的数据类型
键名 | 含义 |
---|
primary key | 主键约束 : 非空+唯一,能够唯一标识数据表中的一条数据 |
foreign key | 外键约束 : 建立不同表之间的关联关系 |
auto_increment | 自增长约束 : 每次+1,从1起 |
unique | 唯一约束 : 其值不可重复 |
not null | 非空约束 : 限制此列的值必须提供,不能为null |
default | 默认约束 : 保存数据时,未指定值时,则采用默认值 |
常用的数据类型
时间类型
数据类型名 | 格式 | 含义 |
---|
date | 1999-08-13 | 日期, 只存储年月日 |
year | 2022 | 年份 |
time | 11:12:13 | 时间,存储时分秒 |
datetime | 1999-08-13 11:12:13 | 日期+时间,存储年月日时分秒 |
timestamp | 19990813111213 | 日期+时间 (时间戳) |
数值型
数据类型名 | 内存空间 | 含义 |
---|
int/integer | 4byte | 整数 |
double | 8byte | 双精度小数 |
字符串类型
数据类型名 | 字符串长度 | 含义及说明 |
---|
char | 0-255字节 | 定长字符串,最多可以存储255个字符 ;当我们指定数 据表字段为char(n) 此列中的数据最长为n个字符,如 果添加的数据少于n,则补’\u0000’至n长度 |
varchar | 0-65535字节 | 可变长度字符串,此类型的类最大长度为65535;当我 们指定数据表字段为varchar(n) 此列中的数据最长为 n个字符,如果添加的数据少于n,不会补齐长度 |
longtext | 0-4294967295字节 | 文本数据(字符串),大型文本记录,如小说书,笔记等 |