数据库的创建
a. 基本格式
create database 数据库名;
b. 判断该数据库名称是否存在,若已经存在就不再创建,不存在则执行创建
create database if not exists 数据库名;
c. 设置数据库的字符集
create database 数据库名 character set 字符集名;
d. 查看mysql数据库的配置信息(存放路径)
show global variables like “%datadir%”;
e. 查看数据库编码设置
show variables like “%char%”;
数据库的删改查
a. 查看已经存在的数据库名称
show databases;
b. 查看数据库的创建语句
show create database 数据库名称;
c. 删除数据库
drop database 数据库名称;
d. 修改数据库字符类型
alter database 数据库名称 character set 字符集名称;
alter database 数据库名称 character set 字符集名称 collate 校对规则;
e. 选择数据库,要在创建表前进行选择。
use 数据库名称;
表的创建
创建表(创建相应的列,根据数据类型定义相应的列类型)
在一个数据库中不可以出现两个同名表。但是两个不同的数据库,是可以出现相同名称的表。
a. 基本格式
create table 表格名( id int, name varchar(20),
password varchar(20), birthday date, 字段名 字段类型 );
b. 定义主键约束
primary key:不允许为空,不允许重复
一个表中一般情况下会有一至两个主键字段。多数情况下都是一个主键字段。
主键的作用:设置主键可以提升查询效率。
auto_increment:自动增长
一旦一个字段设置为自动增长,则这个字段一定是int类型,且一定为主键约束的字段。
但是主键不一定是自动增长的字段。
create table employee( id int primary key auto_increment,
name varchar(20), gender char(2), birthday date, entry_date date,
job varchar(50), salary float, resume text );
表的删改查
查看表
a. 查看表结构
desc 表格名称;
desc employee;
b. 查看当前数据库中所有的表
show tables;
c. 查看表的创建语句
show create table 表格名称 ;
show create table employee;
修改表
a. 新增字段
alter table table_name add column_name type;
b. 修改字段类型
alter table table_name modify column_name type;
c. 删除字段
alter table table_name drop column_name ;
d. 修改表名
rename table employee to emp;
e. 修改字段(列)名称
alter table emp change oldname newname 字段类型;
f. 修改表字符集
alter table emp character set gbk;
删除表
drop table table_name;
表数据的增删改和数据库的备份
新增数据
a. 插入数据
insert into table_name values(column_value,column_value…);
i. 主键字段如果自动增长可以预留为null值。这个值会自动添加到字段中,并自动增长。
ii. 如果在表名之后没有字段名称,则在values关键字之后,需要按序书写表中每一个字段对应的值。
如果在表名之后书写了字段名称,则在values关键字之后,需要按照指定的字段名称顺序,添加对应字段的值。
insert into employee(id,name) values(2,‘cy’);
insert into employee(name,id) values(‘pq’,3);
注意: 字符串类型和日期类型需要书写在单引号中间。(注意:需要为英文符号。)
插入数据的长度不能超过字段指定的长度。
b. 插入中文数据
1.乱码问题产生的原因:编码解码的字符集不统一。
2.乱码解决方案:修改cmd窗口的字符集十分繁琐,所以转为修改数据库的字符集。
需要将数据的字符集修改为GBK和CMD窗口统一。
3.数据库字符集修改方式:
a.在cmd窗口中书写 set names gbk;这种方式为临时修改方式,只在当前cmd窗口生效。
b.永久修改mysql字符集:修改mysql根目录中的my.ini文件。修改57行内容为:default-character-set=gbk,之后需要重启mysql。
删除数据
a. 基本删除语句
i. delete from table_name;
ii. 删除部分数据是以行的形式进行删除,不能以列的形式进行删除
delete from table_name where column_name = value;
b. 使用truncate删除整表数据
truncate table_name;
c. truncate 与delete from相比,谁的删除效率更高?
i. truncate比delete from 删除效率要高。
ii. delete from是逐行删除数据。而truncate是将整张表摧毁再重建,实现删除数据的目的。所以truncate删除效率较高。
iii.但是在面对多表关系是,这个删除语句的关键字要慎重使用,因为摧毁重建表结构,可能无法维护原有的表间关系。
iv.truncate删除之后,id排序从0开始
d. delete语句不能删除某一列的值(可使用update)因为删除的方式是一列一列进行删除
update table_name set 字段名=’’;
e.delete语句仅删除记录,不删除表本身。如要删除表本身,使用drop table语句
修改数据
基本更新语句
update table_name set column_name = value;
where子句介绍
在执行删改查的时候可以添加操作的条件。这个条件通过where关键字来进行添加。
update employee set salary = 5000;
update employee set salary = 3000 where name=‘ls’;
update employee set salary = salary + 1000 where name=‘张飞’;
数据库的备份和恢复
a. 备份数据库表中的数据
mysqldump -uroot -p db_name > d:/1.sql(本地路径和文件名称)
b. 恢复数据库
i. mysql -uroot -p db_name < d:/1.sql
ii. 在mysql客户端中 source d:/1.sql
注意:如果数据库已经删除,先创建数据库再恢复数据