一、SQL语法
1、数据库管理系统(Database Management System)简称DBMS。用来帮助用户访问、操作数据库中的数据。
2、数据库系统类型
A.网状型数据库
B.层次型数据库
C.关系型数据库
D.面向对象数据库
关系型数据库是目前理论最成熟、应用最广泛的数据库
对关系数据库,最基本的数据存储单元是数据表
数据表是存储数据的逻辑单元,可以把数据表想象成由行和列组成的表格,其中每一行称为一条记录,每一列称为一个字段。应为每一个数据表指定一个特殊列,该特殊列的值可以唯一地标识此行地记录,称该特殊列称为主键列。
3、SQL语句基础
执行mysql命令启动客户端
mysql -p密码 -u用户名 -h主机名 --default-character-set=utf8
为了保证较好的安全性,可以省略-p后面的密码,进入系统后再输入
查看当前包含多少个数据库
show databases;
创建新的数据库
create database [IF NOT EXIST] 数据库名;
建立数据库之后,如果想操作该数据库(例如为该数据库建表,在该数据库中执行查询等操作),则需进入该数据库,进入数据库可以使用如下语句
use 数据库名;
进入数据库后,查询该数据库下存在多少个数据表show tables;
查询指定数据表的表结构(查询该表有多少列,列的数据类型等信息)
desc 表名;
4、在SQL命令中的标识符
A、标识符必须以字母开头
B、使用字母、数字和三个特殊字符(#_$)
5、DDL(Data Definition Language,数据定义语言)语句
A、创建表
create table [模式名.]表名
(
#可以有多个列定义
columnName1 datatype [default expr],
...
);
如果指定列的默认值,使用default关键字
建表语句的例子
create table test
(
#整型通常用int
test_id int,
#小数点数
test_price decimal,
#普通长度文本,使用default指定默认值
test_name varchar(255) default 'xxx',
#大文本类型
test_desc text,
#图片
test_img blob,
test_data datatime
);
注:decimal:精确小数类型
blob / mediumblob / longblob:2字节/3字节/4字节的二进制大对象,可用于存储图片、音乐等二进制数据
分别储存64KB / 16MB / 4GB
B.修改表
修改表结构使用alter table,修改表结构包括增加列定义、修改列定义、删除列、重命名等。
增加列:
alter table 表名
add
(
#可以有多个列定义
column_name1 datatype [default expr],
...
);
如果只增加一列,可以省略圆括号
例子
#为hehe数据表增加一个hehe_id字段,该字段的数据类型为int
alter table hehe
add hehe_id int;
#为hehe数据表增加aaa、bbb字段,两个字段的类型都为varchar(255)
alter table hehe
add
(
aaa varchar(255) default 'xxx',
bbb varchar(255)
);
注:SQL语句中的字符串值用单引号(')引起
增加字段时,如果数据表中已有数据记录,除非给新增加的列指定了默认值,否则不能指定非空约束。
修改列:
alter table 表名
modify column_name1 datatype [default expr] [first|after col_name];
例子#将hehe表的hehe_id列修改成varchar(255)类型
alter table hehe
modify hehe_id varchar(255);
#将hehe表的bbb列修改成int类型
alter table hehe
modify bbb int;
不难看出,使用SQL修改数据表的列定义,一次只能修改一个列,语法和add差不多
C、删除列
alter table 表名
drop column_name;
例子#删除hehe表中的aaa字段
alter table 表名
drop aaa;
注:MySQL的特殊语法:
重命名数据表
alter table 表名
rename to 新表名;
例子#将hehe数据表重命名为wawa
alter table hehe
rename to wawa;
改变列表名:
alter table 表名
change old_column_name new_column_name type [default expr] [first|after col_name];
例子#将wawa数据表的bbb字段重命名为ddd
alter table wawa
change wawa ddd int;
C、删除表
删除表的语法:
drop table 表名;
例子drop table wawa;