一、MySQL数据库创建
1.创建库与表
■创建库语句:create database [库名称];
■查库库语句:show databases;
■选择库语句:
use [库名称];
■创建表语句:
create table [表名称];
■查看表语句:
desc [表名称];
实例:假设一个公司为一个库,在库中建立一个员工表,用于存储员工的详细信息。
id |
name
|
age |
email
|
tel
|
salary
|
riqi |
1 |
林俊杰
|
32
|
|
18819463269
|
10000
|
2015-03-23
|
2
|
罗志祥 |
33
|
|
18819463211
|
9000
|
2015-03-01
|
(1)创建一个公司库
create database accompany;
show databases;
use accompany;
(2)向库中创建一张员工表
create table employee(
id int primary key auto_increment,
name char(3) not null default ‘‘,
age tinyint not null default 0,
email varchar(30) not null default ‘‘,
tel char(11) not null default ‘‘,
salary decimal(7,2)
not null default 5000.55,
riqi date not null default ‘2015-1-1‘
)charset utf8;
由下图可知,创建一张表实质上是对表中列的声明。数据是以文件的形式放在硬盘(也有放在内存里的) 。
在声明列时,不同的列类型占的空间不一样 ,选列的的原则是够用,又不浪费且推荐声明默认值(not
null default ())。
★primary key auto_increment:为id列的约束条件,用于设置为该表的主键;
★char(M)或varchar(M):列类型,M表示占用的字符数;
★decimal(M,D):decimal(M,D)
:M表示精度(总位数,不包含点);D表示标度(小数位数)
二、表的增删改查
1.添加/修改/删除表数据
■增加一行数据:(思想:往哪张表添加?给哪几行添加值?分别是什么值?)
insert into 表名 (列1,列2,...,列n) values (值1,值2...,值n);
注:当不标明(列1,...,列n)时,默认插入所有列。
■修改某行的列数据:(思想:改哪张表?你需要改几列的值?分别改为什么值?在哪些行生效?)
update 表名 set
列1=新值1, 列2=新值2,where expr;
■删除行:(思想:你要删除哪张表的数据?你要删掉哪些行?)
delete from 表名 where expr;
■查看表数据:select * from [表名];
(1)向员工表中增加几行数据
insert into employee
(id,name,age,email,tel,salary,riqi)
values
(2)删除/修改数据
delete from employee where id=2;
set names gbk;
update employee set name=‘林俊杰‘ where id=1;
注意:由于我们在创建表时,指定字符编码为utf8。倘若需要输入中文字符,则需要更改字符编码为gbk,否者就会出现
"Incorrect string value:‘xC1\xD6\xBF.."错误。
2.修改字段及属性
■修改表(表中的字段类型、字段名、添加字段、删除字段、修改表名)
①修改表中字段属性(不能修改字段名)
alter table [表名] modify [字段名] [字段类型] [约束条件] [fisrt|after 列名];
②修改表中字段名及属性
alter table [表名] change [源字段名] [修改后的字段名] [字段类型] [约束条件] [fisrt|after 列名];
③增加表字段
alter table [表名] add [字段名] [字段类型] [约束条件] [first|after 列名];
④删除表字段
alter table [表名] drop [字段名];
注意:[first|after 列名],用于修改字段的排序,其中,after将新增的字段添加在某一字段后;first表示将新建的字段放在该表第一列。
■修改表名
命令:alter table [表名] rename to [新表名];
(1)修改字段(列)名称及属性
alter table employee modify name char(6) not null default ‘‘;
3.查询表
■查询表列数据(思想:查那张表?你要选择那些列来查询?要选择哪些行?)
select 列1,列2,...,列n from 表名 where exper;
注:exper表达式用于指明查询哪(些)行的列(列1,列2,...,列n)数据