数据库(Database):
长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据“仓库”
保存,管理数据
net start mysql开启服务
net stop mysql关闭服务
mysql –hlocalhost –uroot –proot连接数据库
show databses;显示所有数据库
use mysql;切换mysql数据库下
show tables;显示表
select * from user;查看user表
select version();查看数据库版本
flush privileges;刷新权限
exit;退出
结构化查询语言:
DDL数据定义语言:
create,drop,alter
DML数据操作语言:
insert,update,delete
DQL数据查询语言:
select
DCL数据控制语言:
grant,commit,rollback
DDL:
创建数据库:
create
database [IF NOT EXISTS] 数据库名;
[如果不存在就创建]
删除数据库:
drop
database [IF EXISTS] 数据库名;
[存在的话就删掉]
查看数据库:
show
databases;
使用数据库:
use
数据库名;
创建表:
create
table[IF NOT EXISTS] 表名
(
`字段名1` 列类型[属性名] [索引][注释],
`字段名1` 列类型[属性名] [索引][注释],
)[表类型][表字符集][注释]
表字符集:
charset='utf-8'
注释:
comment='注释'
表类型:
引擎:
MyISAM
生成的文件:.frm表结构定义文件
.MYD数据文件
.MYI索引文件
InnoDB
.frm表结构定义文件
ibdata1文件
删除表:
drop
table 表名;
查看表结构:
desc
表名;
修改表:
alter
table 旧表名 rename 新表名;
添加字段:
alter
table 表名add 字段名
属性;
修改字段:
alter
table 表名 change 旧字段名
新字段名 属性;
添加主键:
alter table 表名 add
constraint 主键名
primary key 表名(主键字段)
添加外键:
alter
table 表名(外键表的表名) add constraint 外键名
foreign key(外键字段)
references 关联表名(关联字段)(主键表的主键)
char固定长度
varchar可变长度
unsigned无符号的
zerofill 0填充
null可以为空
not null不能为空
default默认值
unique key(UK)唯一约束
primary key(PK)主键约束
foreign key(FK)外键约束
auto_increment自增
DML:
插入数据:
insert
into 表名[(列1,列2…列N)] values (‘值1’,‘值2’….‘值N’)
插入多行数据直接在括号后面加,()列如:
insert
into 表名[(列1,列2…列N)] values (‘值1’,‘值2’….‘值N’),( ‘值1’,‘值2’….‘值N’) ,( ‘值1’,‘值2’….‘值N’)
注意:
字段名是可选的,如省略则依次插入所有字段
多个列表和多个值之间使用逗号分隔
值列表和字段名一一对应
如插入的是表中部分数据,字段名列表必填
将查询结果插入到新表:
create
table 新表名(
select
字段
from
查询的表名
);
注意:
如果新表已有,将会报错
更新数据记录:
update
表名
set
字段1=值1,字段2=值2
[where 条件];
删除数据:
delete
from 表名[where 条件];
truncate table 表名;
truncate 语句删除后将重置自增列,表结构及其字段,约束,索引保持不变,执行速度比delete语句快
查询:
select
列名|表达式|函数|常量
from
表名
[where
条件]
[order
by 排序desc降序,asc升序]
[limit
[开始索引],行数]
is null空的
is not null不为null的
数学函数:
avg()平均值
count()行数,(不为null的才计算)
max()最大值
min()最小值
sum()总和
rand()随机数
ceil(x)天花板
floor(x)地板
字符串函数:
concat(str1,str2,strn)
字符串连接
select
concat(‘My’,‘S’,‘QL’)返:MySQL
insert(str,pos,len,newstr)字符串替换
selecft insert(‘这是SQL Server数据库’,3,10,‘MySQL’)返回:这是MySQL数据库
lower(str)将字符串转为小写
upper(str)将字符串转为大写
substring(str,num,len)字符串截取
时间日期函数:
now()获取当前日期和时间
curdate()当前日期
curtime()当前时间
week(date)一年中第几周
year(date)date的年
adddate(date,n)计算前面的日期加后面的天数后的日期
数据库(Database):
长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据“仓库”
保存,管理数据
net start mysql开启服务
net stop mysql关闭服务
mysql –hlocalhost –uroot –proot连接数据库
show databses;显示所有数据库
use mysql;切换mysql数据库下
show tables;显示表
select * from user;查看user表
select version();查看数据库版本
flush privileges;刷新权限
exit;退出
结构化查询语言:
DDL数据定义语言:
create,drop,alter
DML数据操作语言:
insert,update,delete
DQL数据查询语言:
select
DCL数据控制语言:
grant,commit,rollback
DDL:
创建数据库:
create
database [IF NOT EXISTS] 数据库名;
[如果不存在就创建]
删除数据库:
drop
database [IF EXISTS] 数据库名;
[存在的话就删掉]
查看数据库:
show
databases;
使用数据库:
use
数据库名;
创建表:
create
table[IF NOT EXISTS] 表名
(
字段名1
列类型[属性名] [索引][注释],
字段名1
列类型[属性名] [索引][注释],
)[表类型][表字符集][注释]
表字符集:
charset=‘utf-8’
注释:
comment=‘注释’
表类型:
引擎:
1.
MyISAM
生成的文件:.frm表结构定义文件
.MYD数据文件
.MYI索引文件
2.
InnoDB
.frm表结构定义文件
ibdata1文件
删除表:
drop
table 表名;
查看表结构:
desc
表名;
修改表:
alter
table 旧表名 rename 新表名;
添加字段:
alter
table 表名add 字段名
属性;
修改字段:
alter
table 表名 change 旧字段名
新字段名 属性;
添加主键:
alter table 表名 add
constraint 主键名
primary key 表名(主键字段)
添加外键:
alter
table 表名(外键表的表名) add constraint 外键名
foreign key(外键字段)
references 关联表名(关联字段)(主键表的主键)
char固定长度
varchar可变长度
unsigned无符号的
zerofill 0填充
null可以为空
not null不能为空
default默认值
unique key(UK)唯一约束
primary key(PK)主键约束
foreign key(FK)外键约束
auto_increment自增
DML:
插入数据:
insert
into 表名[(列1,列2…列N)] values (‘值1’,‘值2’….‘值N’)
插入多行数据直接在括号后面加,()列如:
insert
into 表名[(列1,列2…列N)] values (‘值1’,‘值2’….‘值N’),( ‘值1’,‘值2’….‘值N’) ,( ‘值1’,‘值2’….‘值N’)
注意:
字段名是可选的,如省略则依次插入所有字段
多个列表和多个值之间使用逗号分隔
值列表和字段名一一对应
如插入的是表中部分数据,字段名列表必填
将查询结果插入到新表:
create
table 新表名(
select
字段
from
查询的表名
);
注意:
如果新表已有,将会报错
更新数据记录:
update
表名
set
字段1=值1,字段2=值2
[where 条件];
删除数据:
delete
from 表名[where 条件];
truncate table 表名;
truncate 语句删除后将重置自增列,表结构及其字段,约束,索引保持不变,执行速度比delete语句快
查询:
select
列名|表达式|函数|常量
from
表名
[where
条件]
[order
by 排序desc降序,asc升序]
[limit
[开始索引],行数]
is null空的
is not null不为null的
数学函数:
avg()平均值
count()行数,(不为null的才计算)
max()最大值
min()最小值
sum()总和
rand()随机数
ceil(x)天花板
floor(x)地板
字符串函数:
concat(str1,str2,strn)
字符串连接
select
concat(‘My’,‘S’,‘QL’)返:MySQL
insert(str,pos,len,newstr)字符串替换
selecft insert(‘这是SQL Server数据库’,3,10,‘MySQL’)返回:这是MySQL数据库
lower(str)将字符串转为小写
upper(str)将字符串转为大写
substring(str,num,len)字符串截取
时间日期函数:
now()获取当前日期和时间
curdate()当前日期
curtime()当前时间
week(date)一年中第几周
year(date)date的年
adddate(date,n)计算前面的日期加后面的天数后的日期