数据库的创建

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

注意:如果数据库已经删除,先创建数据库再恢复数据