SQL语句分类
1. DDL-数据库定义语言
1.1. 概念及作用
database defination language 数据库定义语言,用于定义数据库,用于定义表结构
1.2. 表中字段基本数据类型
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型
一个汉字占多少长度与编码有关:
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节
varchar(n) 表示 n 个字符,无论汉字和英文,Mysql 都能存入 n 个字符,仅是实际字节长度有所区别
1.3. 数据库语句操作
1.在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
//创建第一个数据库 mydb1
create database mydb1
2.在删除数据库过程中,务必要十分谨慎,因为在执行删除命令后,所有数据将会消失。语法:
//删除创建的数据库
drop database mydb1;
3.在你连接到 MySQL 数据库后,可能有多个可以操作的数据库,所以你需要选择你要操作的数据库
//选择数据库
user mydb1
注意:所有的数据库名,表名,表字段都是区分大小写的。所以你在使用SQL命令时需要输入正确的名称。
4.查看数据库创建细节
show create database mydb1
5.创建一个使用gbk字符集的数据库
create database mydb2 character set gbk
1.4. 表结构语句操作
1.选择数据库
use mydb1
2.创建MySQL数据表需要以下信息:
表名、表字段名、定义每个表字段
//创建表
create table student(id int,name varchar(20),sex varchar(20),age int,salery float(6,2),birthday date)
//删除表
drop table student;
//查看所有表
show tables
//查看表的创建细节
show create table student;
//展示表结构
desc student
// 在原有的学生基础上添加address列
alter table student add address varchar(20)
//在原有的学生基础上删除address列
alter table student drop address
1.5. 定义表的约束
create table student(id int primary key auto_increment,name varchar(20) unique not null,sex varchar(20),age int,salery float(6,2),birthday date)
- 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
*AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
*PRIMARY KEY关键字用于定义列为主键。为了标识数据库记录唯一性,不允许记录重复,且键值不能为空,主键也是一个特殊索引。 您可以使用多列来定义主键,列间以逗号分隔。
*UNIQUE KEY的用途:主要是用来防止数据插入的时候重复的
*ENGINE:设置存储引擎
*CHARSET: 设置编码
2.2 DML - 数据库操作语言
2.1. 概念及作用
DML:data manipulation language 数据库操作语言,用以操作数据库。
2.2. 插入数据
//插入数据
insert into student values(1,’zhangsan’,’nan’,19,389.10,’1999-10-10’);
//查询
select * from student
*问题一:插入中文会报错
insert into student values(2,’李四’,’男’,19,389.10,’1999-10-10’);
*解决:
//通知服务器客户端使用的编码是gbk
set character_set_client=gbk;
//通知服务器客户端查看结果集使用的编码是 gbk
set character_set_results=gbk;
insert into student(id,name,sex,age) values(3,’王五’,’男’,19);
*问题二:数据库命令框如果有中文就乱码
charset gbk;
2.3. 删除数据
//删除单条数据
delete from student where id=1;
//删除所有数据