MySQL数据库基本操作
##########################
今天来说一下mysql数据库的一些基本操作
##########################
1.创建数据库
create database db1; //db1是数据库名
2.查看当前存在的数据库
show database db1;
3.查看数据库定义
show create database db1;
4.选择数据库
use db1;
5.删除数据库
drop database db1;
6.创建表(一个表描述的是一件事情)
create table 表名
(
列名 数据类型 [约束],
...
);
列名:命名规则同java;数据类型:参见列表;约束:约束的是值,分为主键约束、外键约束、非空约束、唯一约束、默认约束
1)主键约束:要求主键列的数据是唯一,且不允许为空。
单字段主键:字段名 数据类型 primary key
多字段联合主键:primary key [字段1,...,字段n]
2)外键约束:用来在两个表之间建立连接。
格式:constraint 外键名 foreign key 字段名 references 主表名(主键列)
1 create table classinfo 2 ( 3 classid int primary key, 4 classname varchar(6) 5 ); 6 create table stuinfo 7 ( 8 stuid int primary key, 9 stuname varchar(6), 10 stusex char(1), 11 classid int, 12 ##添加外键 13 foreign key(classid) references classinfo(classid) 14 ); 15 commit; 16 rollback;
3)非空约束:指字段值不能为空。
格式:字段名 数据类型 not null
4)唯一约束:要求该列值唯一,允许为空,但只能出现一个空值。
格式:字段名 数据类型 unique
5)默认约束:指定某列的默认值。
格式:字段名 数据类型 default 默认值
6)设置表的属性值自增:一个表只能有一个字段使用自增约束,且该字段必须为主键的一部分。
格式:字段名 数据类型 auto_increment
1 create table students 2 ( 3 stu_no int primary key auto_increment, ##标识列 incremeny 4 stu_name varchar(4) not null, 5 stu_sex char(1) check(stu_sex='男'or stu_sex='女'), 6 stu_age integer, 7 stu_phone varchar(11) unique not null, 8 stu_bri date 9 );
7.创建临时表
create temporary table a ();
8.查看表基本结构语句
describe 表名 / desc 表名
查看表的详细结构语句:show create table \g 表名
9.修改表名
alter table 旧表名 rename 新表名;
10.修改字段的数据类型
alter table 表名 modify 字段名 数据类型
11.修改字段名
alter table 表名 change 旧字段名 新字段名 新数据类型;
12.修改表语句
alter table 表名 add 新字段名 数据类型 [约束条件] [first | after 已存在字段名];
alter table 表名 drop 字段名;
13.修改字段的排列位置
alter table 表名 modify 字段1 数据类型 first | after 字段名2;
14.更改表的存储引擎
alter table 表名 engine=更改后的存储引擎名;
15.删除表的外键约束
alter table 表名 drop foreign key 外键约束名;
16.删除表
drop table 表名;
17.插入数据
#单行插入:insert into 表名 (列字段列表) values(值内容列表); #1.按照列字段顺序插入 insert into students(stu_no,stu_sex,stu_name,stu_age)values(null,'女','李四',23); #2.按照物理顺序插入 insert into students values(3,'王五','男',22); #3.插入部分列的数据,其他列必须允许为空 insert into students(stu_name,stu_phone) values('马六','13477778888'); #多行插入:注意标识列不支持 insert into 表名 (列字段列表) values(),...,(); insert into 表名 (列字段列表) select 值内容列表 from 表名 where 条件;
18.更新数据
1 update 表名 set 列名 = 值 , ....列名 = 值 where 条件; 2 例:update students set stu_age=21 ,stu_bri='1997-09-11' where stu_no=6;
19.删除数据
1 delete from 表名 where 条件; 2 例:delete from students where stu_no>3;
20.表的复制
1 #1.创建表复制 2 create table 新表 as select 列 from 旧表 [where 条件]; 3 create table new_user as select userid,username,useraddress from userinfo where userage>30; 4 #2.插入数据时复制 5 insert into 新表 (列字段) select 列字段 from 旧表 [where 条件]; 6 insert into new_user select userid,username,useraddress from userinfo ;