操作数据库和表
1. SQL 基础内容
1.1. 语句
- 以 ; (分号结尾)
show databases; # 查看所有数据库
- sql 语言 不区分大小写 建议关键字大写;
- 注释符号; -- 单行注释 # 单行注释 /* 多行注释 */
1.2. 按功能分类
- DDL 数据定义语言(操作创建表)
- DML 数据操作语言(表中数据 增删改查)
- DQL 数据查询语言(查询表中数据)
- DCL 数据控制语言(权限控制)
1.3. 操作数据库
show databases; # 查看数据库
show create database mysql; # 查看数据库字符集
show charset; # 查看支持的字符集
- 创建数据库
# 直接创建数据库 db1 如果存在会报错
create database db1;
# 创建 db1 时判断是否存在 不存在就创建 不会报错
create database if not exists db1;
# 创建时指定字符集
create database if not exists db2 character set utf8;
- 局部修改字符集
alter database 库名 default character set 字符集;
alter table 表名 convert to character set 字符集;
alter table 表名 modify 字段名 字段属性 character set gbk;
- 删除数据库
drop database db1;
drop database if exists db1;
- 全局修改字符集
/*建立连接使用的编码*/
set character_set_connection=utf8;
/*数据库的编码*/
set character_set_database=utf8;
/*结果集的编码*/
set character_set_results=utf8;
/*数据库服务器的编码*/
set character_set_server=utf8;
- 数据库其他操作
select database(); # 查看当前使用的数据库
use databasename; # 进入某个数据库
1.4. 操作表
- 查看表
show tables; # 查看数据库中所有表
desc tablename; # 查看表结构
- 创建表格式
create table tableName(
field1 type,
field2 type,
......
fieldn type
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
# 注意 结束行没有逗号 末尾可以指定数据库引擎 字符集
- sql中常见数据类型
| 符号 | 类型 | 例子 | 说明 |
|---|---|---|---|
| int | 整数 | age int, | |
| double | 小数 | length double(5,2), | 5 代表总长度 2代表小数点后保留位数 |
| varchar | 字符串类型 | name varchar(20), | 最长为 20个字符 超过了报错 插入失败 |
| date | 日期时间 | yyyy-MM-dd | |
| datetime | 时间 | yyyy-MM-dd HH:mm:ss | |
| timestamp | 时间戳 | yyyy-MM-dd HH:mm:ss | 这种类型如果不赋值 会自动填上当前系统时间 |
- 创建学生表
create table Student(
sid int,
name varchar(20),
age int,
score double(4,1),
birthday date,
addtime timestamp
);
- 删除表
-
复制表
create table newtable like oldtable; # 将表复制一份并命名
drop table tablename;
drop table if exists tablename;
- 修改表
# 1. 修改表名
alter table oldname rename to newname;
# 2. 修改字符集
alter table tablename character set utf8;
# 3. 添加一列
alter table tablename add colname type;
# 4. 修改一列
alter table tablename change colname newname type;
# 只改变类型
alter table tablename modify colname newtype;
# 5. 删除列名
alter table tablename drop colname;
浙公网安备 33010602011771号