3.3.1创建和查看数据表
一、查看数据表

1.use onlinedb; -------------将数据库设为当前数据库
2.show tables; ---------------查看数据库中的表
3.create table users(
uID int(11) PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID'
uName varchar(30) NOT NULL,
uPwd varchar(30) NOT NULL,
uSex ENUM('男','女')DEFAUTE'男');----------创建数据库表
4.describe onlinedb users; -----------------查看表结构(describe 也可以是desc);
5.show create table 表名;------------不仅可以查看表的详细定义还可以查看默认储存引擎和和字符编码

3.3.2修改表
一、修改表名

1.alter table 原表名 rename [to] 新表名;

二、修改字段

1.alter table 表名 change 原字段名 新字段名 新数据类型; 
2alter table 表名 modify 字段名 新数据类型;

三、修改字段排列顺序

1.alter table 表名 modify 字段名1数据类型 first\after 字段名2;

四、添加字段

1.alter table 表名 add 字段名 数据类型;

 

五、删除字段

1.alter table 表名 drop 字段名;

六、修改表的存储引擎

1.alter table 表名 enging=存储引擎名

3.3.3复制表
一、复制表结构和数据到新表

1.creater table 新表名select * from 源表名;

二、只复制表结构到新表

1.create table 新表名 select *from 源表名 where false;
2.cerate table 新表名 like 源表名;

三、复制表部分字段及数据到新表

1.create table 新表名 as(select 字段1,字段2,等等 from 源表名);

四、删除表

1.drop table 表名;

3.4.1表约束

一、primary key约束(主键约束,定义表中构成主键的一列或多列,且每个表只能由一个主键约束)

1.create 数据类型 primary key; ----------主键约束
eg(1):create table goods(
        gdID int primary key,
         gdName varchar(30) not null,
         gdPrice decimal(8,2));
eg(2):create table scarunfo (
          gdID int,
          uID int,
          scNum int default 1
          primary key(gdID,uID));---------------定义复合主键

二、not null 约束(非空约束,强制字段值不能为null,他不等同于0或空字符,不能跟任何值比较,只能起约束作用)

1.属性名 数据类型 not null,

eg:  alter table Goods add gdCode varchar(30) not null after gbID;

三、default 约束(默认值约束,用于指定字段默认值,即记录表时,若字段未填入,则系统会将自动默认值填如)
1.属性名 数据类型 default 默认值

eg:alter table SCar modify scNum int default 1;--------------修改默认值是1

四、unique约束(唯一性约束,是指数据表中一列或一组列中只包含唯一值)
1.属性名 数据类型 unique

eg:  create table users(
          uID int(11) primary key auto_increment comment '用户ID',
          uName varchar(30) not null unique,-----------定义为唯一约束
          uPwd varchar(30) not null,
          uSex enum('男','女')default'男');

五、foreing key约束(外键约束,约束的实现不只在单表中进行,而是在表中的数据与另一个表中数据之间进行)
1.创建外键约束

1.constraing 外键名 foreing key(外键字段名)
                                  references 主表名(主键字段名)
eg1: create table GoodsType (
     tID int primary key,----------------标识该字段为主键
     tName varchar(30) not null);
 eg2: create table goods (
gdID int primary key auto_increment,----------标识该字段为主键且自增
tID int not null,
gdCode varchar(30) not null unique,
gdName varchar(30) not null,
gdPrice decimal(8,2),
constraint FK_tID foreign key (tID) references GoodsType (tID));

2.外键约束的级联更新或删除;

conatraint 外键名 foreing key(外键字段名)
                 references 主表名 (主键字段名)
[on update { cascade | set null | no action | reserict } ]
[on delect  { cascade | set null | no action | reserict } ]
eg: create table goods (
gdID int primary key auto_increment,---------------标识该字段为主键且自增
tID int not null,
gdCode varchar(30) not null unique,
gdName varchar(30) not null,
gdPrice decimal(8,2),
constraint FK_tID foreign key (tID) references GoodsType (tID)
on update cascade
on delete cascade);

3.外键约束的删除

Alter table 表名 drop foreign key 外键名;
  eg: alter table goods drop foreign key FK_tID;

3.5.1 插入数据
1.数据插入

insert into 表名[(字段列表)] values (值列表);
  eg: insert into GoodsType values(6,'运动');
  eg:insert into user (uname,upwd) values ('张小山','123');

2.使用replace语句插入单条数据

replace into 表名[(字段列表)] values (值列表);
  eg :replace into user (uid,uname,upwd) values ('3','乐天天','111');

 3.使用insert into语句插入多条数据

insert into 表名[(字段列表)] values(值列表1)[(值列表2),(值列表3),......(值列表n)];
eg : insert into user (uname,usex,upwd) values('郑霞','女','asd')('李竞','男','555')('朱小兰','女','123');

4.使用replace into语句插入多条数据

eg : replace into user (uname,usex,upwd) values(5,'郑立','男','qaz')(6,'李竞','男','666')(8,'朱小兰','女','456');

5.插入其它表的数据

insert into 目标数据表(字段列表1) select 字段列表2 from 源数据表 where 条件表达式;
eg: insert into users(uname,upwd,usex) select uname,upwd,usex from user where uid>5;

6.insert 语句的其他语法格式

insert into 表名 set 字段名1 = 值1[,字段名2 = 值2,.......];
eg :insert into users set uname = '曲甜甜',upwd = '666',usex = '女';

3.5.2修改数据

update 表名 set 字段名1 = 值1,字段名2  =取值2,......,字段名n = 取值n;[where 条件表达式];
eg :update users set upwd  = '888' where uname = '朱小兰';

3.5.3删除数据

1.使用delect语句删除数据

delect from 表名 [where 条件表达式];
eg :delect from users where uid = 4;

2.使用truncate 语句删除数据

truncate [table] 表名
eg: truncate user;
表对象名+_+列对象名+_