数据库
create database isTester; ##创建数据库isTester
use isTester; ##选择数据库isTester
drop database isTester; ##删除数据库isTester
数据表
1、创建表——create
CREATE TABLE istester (
id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
uname VARCHAR(20) NOT NULL,
sex VARCHAR(4) COMMENT '性别',
birth YEAR,
department VARCHAR(20),
address VARCHAR(50),
idoxu VARCHAR(20)
);
- 字段名称和字段类型必须要包含;
- default可设置默认值;
- 主键表示唯一标识表中每一行的某一列或多列,不允许主键字段重复,使用PRIMARY KEY关键字定义;
- NULL以及NOT NULL表示该字段是否允许为空,默认为NULL,即允许不包含值;
- 每个字段的注释可用关键字COMMENT描述;
- UNIQUE 约束唯一标识数据库表中的每条记录,与主键区别是一张表可以有多个UNIQUE约束,只能有一个PRIMARY KEY
2、复制表
只复制表结构,不复制数据:
create table istester2 like istester; ##复制istester的表结构,包括主键类型和自增方式
create table istester3 select * from istester where 1=2; ##复制istester表结构,不复制主键类型和自增方式;where条件实际作用是限制复制数据,即没有任何符合条件的数据可复制
同时复制表结构和数据:
create table istester4 select * from istester; ##复制istester的表结构和所有数据
create table istester5 select 字段1,字段2,... from istester where 条件; ##复制db1部分表结构字段及符合where条件的数据
只复制数据:
insert into istester6 select * from istester where 条件; ##istester6表结构和istester相同情况下,复制符合where条件的数据到istester6表中
insert into istester7 (字段1,字段2,...) select 字段1,字段2,... from istester; ##复制istester数据到istester7,假设两个表结构不一致,此处只复制部分字段的数据
insert into isTester.idoxu select id, id, cname, 60, 60 from isTester.istester; ##把istester表的所有数据,插入到 idoxu表,注istester表字段少于idoxu
##字段取值规则
##id 取id
##stu_id 取id
##c_name 取 uname
##istester 和 grade字段,给默认值 60
3、删除表
三种方式:drop、truncate、delete
- drop:表结构和数据全部删除
- truncate:删除所有数据,表结构保留,与delete的区别是执行后立即执行,无法回滚
- delete:常用于删除部分数据,也可不带where删除所有数据,删除后还可回滚,在没有备份的情况下比较安全
drop table istester2; ##删除表istester2
drop table idoxu2,
truncate table istester3; ##删除表istester3中所有数据
delete from istester4; ##删除表istester4中所有数据
delete from istester5 where 条件; ##删除符合条件的数据
4、插入数据——insert
- 不指定字段,即给所有列插入数据
insert into istester values (value1,value2,value3,...)
- 指定列插入数据
insert into istester (column1,column2,column3,...) VALUES (value1,value2,value3,...);
5、更新数据——update
UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
6、新增删除修改表字段、表名——alter
alter table istester rename to istester6; ##将表istester修改为istester6
alter table istester add istester6 varchar(100) NOT NULL; ##修改istester表,添加一个字段istester6 (字符类型VARCHAR,长度100,不允许为空)
desc istester; ##查看istester表结构,包括表字段和类型长度
alter table istester alter column istester6 INT(10); ##修改istester表中istester6字段的类型
alter table idoxu change istester istester6 varchar(100); ##修改表istester,把字段istester ,改为istester6(字符类型varchar,长度100 )
alter table istester drop column istester6; ##修改istester表,删除字段istester6
查看表结构
mysql> desc istester;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id | int(10) | NO | PRI | NULL | |
| uname | varchar(20) | NO | | NULL | |
| sex | varchar(4) | YES | | NULL | |
| birth | year(4) | YES | | NULL | |
| department | varchar(20) | YES | | NULL | |
| address | varchar(50) | YES | | NULL | |
| idoxu | varchar(20) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
7 rows in set (0.00 sec)
网友评论