create
建立insert
插入primary key
主键alter
修改change
改变/修改rename
重命名modify
修改character
字符engine
引擎table
数据表database
数据库foreign key
外键update
更新delete
删除drop
扔掉/删除show
展现unique
惟一增删改查
create database db_name character set character_name
复制代码
db_name
:表示所要建立的数据库的名称。character_name
:表示数据库的字符集。『示例』建立一个名为 bookshop 的数据库,并设置其字符集为gbk。mysql
create database bookshop character set gbk;
复制代码
结果:sql
mysql> create database bookshop character set gbk;
query ok, 1 row affected (0.00 sec)
复制代码
成功建立数据库后,可使 用show
命令查看 mysql 服务器中的全部数据库信息数据库
show databases;
复制代码
『示例』show命令査看 mysql 服务器中的全部数据库bash
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bookshop |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
复制代码
虽然成功建立了数据库,但并不表示当前就在操做操做库 bookshop
。可使用 use
语句选择一个数据库。服务器
use db_name;
复制代码
例如,选择名称为 bookshop
的数据库,设置其为当前默认的数据库,命令执行结果以下所示post
mysql> use bookshop;
Database changed
复制代码
数据库建立后,若是须要修改数据库的参数,可使用 alter database
命令。语法以下:ui
alter database db_name character set character_name;
复制代码
『示例』将数据库 bookshop所用的字符集修改为 gb2312。spa
alter database bookshop character set gb2312;
复制代码
删除数据库的操做可使用 drop database
语句,语法以下:设计
drop database db_name;
复制代码
例如,经过 drop database 语句删除名称为 bookshop 的数据库,以下所示。3d
mysql> drop database bookshop;
query ok, 0 rows affected (0.03 sec)
复制代码
dbms
) 使用数据引擎进行建立、查询、更新和删除数据 操做。show engines;
” 便可查看mysql服务实例支持的存储引擎。以下所示。
myisam存储引擎的文件类型有三个。
基于 myisam 存储引擎的表支持3种不一样的存储格式, 分别是
列名是用来访问表中具体域的标识符,列名必须遵循下列规则:
整数数据类型
bigint
、int
、 mediumint
、 smallint
和 tinyint
小数数据类型
decimal
、 numeric
两类。从功能上说二者彻底等价,二者的惟一区别在于 decimal不能用于带有 indentity
关键字的列浮点数据类型
经常使用的字符串类型主要包括char
、 varchar
、 binary
、 varbinary
等类型。
在 mysql中,日期时间类型包括 datetime
、time
、timestamp
、date
等。
表的命名方式。
表中每一列的名称、数据类型及其长度。
表中的列是否容许空值, 是否惟一, 是否要进行默认设置或添加用户定义约束。
表间的关系, 即肯定哪些列是主键, 哪些是外键
语法
create table tb_name(
column name1 datatype[列级别约束条件],
column name2 datatype[列级别约束条件]
...
[表级别约束条件]
);
复制代码
建立以下数据表的话
实际代码
create table customers(
cid char(6) not null primary key,
ctruename varchar(50),
cpassword varchar (50),
csex char (2),
caddress varchar(50),
cmobile varchar(11),
cemail varchar(50),
cregisterdate datetime
)engine=innodb;
复制代码
存在你数据库里的数据, 就要符合你数据库的
规矩
在 mysql中能够经过 primary key约束、foreign key约束、 unique、空值约束和默认值约束等来实施数据完整性
实体完整性(每行数据都不同)
域完整性(数据大小在字段容许的范围内)
引用完整性约束(外键和对应主键的值要一致)
自定义完整性(本身定义的一些规则)
主键(primary key
)约束是使用最为频繁的约束 它的做用是惟一标记一条数据
因此:
总结起来就是四不
不为空, 不相同, 不重用, 不改动
『示例』顾客信息表 customers中须要以“顾客编号”做为顾客的惟一标识,在建立数据表 customers时,为cid列设置primary key约束,因为单列组成主键,故该主键能够定义为列级主键。
create table customers(
cid char(6) not null primary key,
ctruename varchar (30) not null,
cpassword varchar (30) not null,
csex char(2)not null,
caddress varchar (50) null,
cmobile varchar (11) not null,
cemail varchar(50) null,
cregisterdate datetime not null
);
复制代码
『示例』若是在订单详情表中不设置编号,则能够将表中“订单编号 + 商品编号”做为订单详情的惟一标识,在建立数据表 orderdetails时, 为oid和gid的组合设置 primary key约束。
create table orderdetails(
oid char(14) not null,
gid char(6) not null,
odprice float not null,
odnumber int not null,
primary key (oid, gid)
);
复制代码
外键( foreign key )约束标识表之间的关系,用于强制参照完整性,为表中一列或者多列数据提供参照完整性。
简单说, 外键是链接另外一个表的锚点
建立外键的基本语法以下:
[constraint<外键名>] foreign key 列名1 [, 列名2, ...] references <主键表> 主键列1 [主键列2...]
复制代码
看着挺唬人, 其实很简单, 看个例子
『示例』在建立数据表订单表 orders时,表中的cid(客户编号)引用了客户表 customers中的客户编号,须要创建 orders表和 customers 表之间的关系。其中cid为关联列, customers 表为主键表, orders表为外键表。
create table orders(
oid char(14) not null primary key,
cid char(6) not null,
odate datetime not null,
osum float not null,
ostatus char(1) not null,
foreign key(cid) references customers(cid)
)engine=innodb;
复制代码
『示例』为了保证客户信息表
表 customers中的手机号
不重复,在建立数据表 customers时,为 cmobile设置 unique约 束
-- 若是存在就删除, 防止重复建表而报错
drop table if exists customers;
create table customers(
cid char(6) not null primary key,
ctruename varchar (30) not null,
cpassword varchar (30) not null,
csex char(2)not null,
caddress varchar (50) null,
cmobile varchar (11) not null unique,
cemail varchar(50) null,
cregisterdate datetime not null
);
复制代码
『示例』在建立客户信息
表 customers时,为用户性别csex 字段设置为默认值“男”。
create table customers(
cid char(6) not null primary key,
ctruename varchar (30) not null,
cpassword varchar (30) not null,
csex char(2)not null default '男',
caddress varchar (50) null,
cmobile varchar (11) not null unique,
cemail varchar(50) null,
cregisterdate datetime not null
);
复制代码
非空值约束限制一列或多个列的值不能为空(null) 空表示未定义或未知的值。
在默认状况下,全部列都接受空值, 若要某列不接受空值, 则能够在该列上设置not null约束。
null值既不等价于数值型数据0, 也不等价于字符型数据中的空串, 只是代表字段值是未知的
如需在表中添加列,请使用下面的语法:
alter table table_name add column_name datatype;
复制代码
『示例』在客户表中新增一个客户昵称字段, 变长11位
alter table customers add cnickname varchar(11);
复制代码
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不容许这种在数据库表中删除列的方式):
alter table table_name drop column column_name
复制代码
『示例』删除用户昵称字段
alter table customers drop cnickname
复制代码
要改变表中列的数据类型,请使用下面的语法:
alter table table_name modify column column_name datatype
复制代码
『示例』假设已经在数据库 bookshop中建立了表customers。要把字段 csex 的数据类型改成int类型。
use bookshop;
alter table customers modify csex int not null;
复制代码
『示例』假设已经在数据库 bookshop中建立了表 customers。添加一个新的字段 state,类型为cha(1),不容许为空,将字段 address列删除。
use bookshop;
alter table customers add state char() not null, drop column address
复制代码
用 rename table
语句来更改表的名字。其语法形式以下
rename table tb_name to new_tb_name
复制代码
『示例』假设数据库 bookshop 中存在 customers 表,将 customers 表重命名为 customers2 表。
use bookshop;
rename table customers to customers2;
复制代码
删除表是指删除数据库中已存在的表。在 mysql 中经过 drop table 语句来删除表。语法以下:
drop table tb_name;
复制代码
『示例』假设存在 customers,删除 bookshop数据库中 customers 数据表。
use bookshop;
drop table customers;
复制代码
使用基本的 insert语句插入数据要求指定表名称和插入到新记录中的值。基本语法格式为
insert into tb_name (col_list) values (val_list);
insert into tb_name values (val_list);
复制代码
『示例』向 bookshop数据库的表 customers插入以下的数据。
```msyql
insert into customers
( cid,
truename,
cpassword,
csex,
address,
cmobile,
cemai,
cregisterdate )
values
( 'c0011',
'李 平',
'123456',
'女',
'广东中山市',
'1351543876',
'liping163.com',
'2009-9-6' );
```
复制代码
『示例』新顾客信息录入,顾客信息地址 address和电子邮箱cemail尚缺,只能将该顾客的部分信息如表所示添 加到 customers表中。
```sql
insert into customers
( cid, truename, password, csex, cmobile, cregisterdate )
values
( c0012, 张先明, 23456, 男, 13513452312, 2009-10-6 );
```
复制代码
『示例』若是想一次性插入多条, 能够这样...
use bookshop;
insert into customers values
(
'c0013',
'韩志国',
'123456',
'男',
null,
'13512134256',
'hanzo',
'al63com',
'2010-1-16'
), (
'c00141',
'张小明',
'123456',
'男',
null,
'13613434256',
'zma163.com',
'2010-2-24');
复制代码
『示例』修改商品信息表 goods中的数据,将所有书籍的价钱九折出售。
update goods;
set price = price * 0.9;
复制代码
『示例』修改商品信息表gods中的数据,将书籍存量小于100本的图书再增长50本。完成语句以下所示。
update goods;
set number = number + 50 where number <= 100;
复制代码
『示例』商品编号为“010001”的商品已售完,而且之后不考虑再进货,须要在商品信息表中清除该商品的信息。完 成语句以下所示
delete from goods where gid=010001;
复制代码
『示例』删除商品信息表中的全部信息。完成语句以下所示。
delete from goods;
复制代码