1. SQL分类
1.1. DDL(Data Definition Language)
定义:数据库,表,列等。关键字:create,alter,drop等
1.2. DML(Data Manipulation Language)
更新:表记录。关键字:insert,delete,update等
1.3. DCL(Data Control Language)
定义:访问权限和安全级别,及创建用户。
1.4. DQL(Data Query Language)
查询:表记录。关键字:select,from,where等 **(占工作大部分时间)**
2. SQL书写规则
2.1. 句子以 ;结尾
2.2. 语法不区分大小写(表数据字段除外)
2.3. 注释
单行: # xxx 或 -- xxx ( 快捷键:ctrl + / );
多行: /* xxxxx */
2.4. 常见数据类型设定
int #整型 (度量值)——可进行四则运算的
double #浮点型 (度量值)——可进行四则运算的
decimal #小数型 (数字总位数,保留小数点后几位)
varchar #字符串型 (时间除外的维度)
data # 日期型,日期 YYYY-MM-DD
time # 时间型 HH:MM:SS
datetime # 日期时间型 YYYY-MM-DD HH:MM:SS
3. DDL数据库操作(创看删切)
3.1. 创建库
默认编码utf8,表信息有中文的话换成gbk即可
CREATE DATABASE dataset CHARACTER SET gbk ;#创建数据库并确定读取方式
ALTER DATABASE dataset CHARACTER SET=utf-8 ;#修改数据库编码
3.2. 查看库
3.2.1. 查看所有库
SHOW DATABASE dataset ;**(注意有s)**
3.2.1. 查看当前使用的库
select DATABASE dataset ;
3.3. 删除库
drop DATABASE dataset ;
3.4. 切换库
use DATABASE dataset ;
4. DDL数据表操作(创看增改删)
4.1. 创建表 CREATE
create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
);
4.2. 查看表 SHOW
4.2.1 查看当前库的表 SHOW tables
SHOW tables;**(注意有s)**
4.2.2. 查看表结构——DESC等
DESC test;#方法1
SHOW COLUMNS FROM test;#方法2
DESCRIBE test;#方法3
4.3. 删除表——drop
drop tables dataset ;
4.4. 修改表的列结构——增改删
4.4.1. 增加列——ALTER ADD
/*方法一*/
ALTER TABLE test
ADD id VARCHAR(200) NOT NULL,
ADD name CHAR(11) NOT NULL;
/*方法二*/
ALTER TABLE test
ADD (id VARCHAR(200) NOT NULL,name CHAR(11) NOT NULL);
4.4.2. 修改列类型长度、约束——ALTER MODIFY
ALTER TABLE test MODIFY name VARCHAR(50) NOT NULL; /* 添加约束NOT NULL */
ALTER TABLE student
MODIFY tellphone VARCHAR(20) NOT NULL; /*CHAR(11)修改为VARCHAR(200)*/
4.4.3. 修改列名——ALTER CHANGE
ALTER TABLE sort CHANGE id userid VARCHAR(10),name username VARCHAR(10);
4.4.4. 删除列——ALTER DROP
ALTER TABLE student DROP home_address, DROP home_tel;
5. 编码注意
我们在dos命令行操作中文时,会报错
insert into user(username,password) values(‘张三’,’123’);
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'username' at row 1
原因:因为mysql的客户端编码的问题我们的是utf8,而系统的cmd窗口编码是gbk
解决方案(临时解决方案):修改mysql客户端编码。
show variables like ‘character%’; 查看所有mysql的编码
在图中与客户端有关的编码设置:
client connetion result 和客户端相关
database server system 和服务器端相关
将客户端编码修改为gbk.
set character_set_results=gbk; / set names gbk;
以上操作,只针对当前窗口有效果,如果关闭了服务器便失效。如果想要永久修改,通过以下永久解决方式:
在mysql安装目录下有my.ini文件
default-character-set=gbk 客户端编码设置
character-set-server=utf8 服务器端编码设置