库&表操作复习
常见的关系型数据库:
mysql,oracle,sql-server
直接关系:
两表之间有相同的列可以作为两表的练习
间接关系:
两表之间没有相同的列,但是可以通过其它表的列来建立联系
数据库的作用:
存储和管理数据
Dos 命令窗口下启动 mysql:
配置了环境变量:直接键入 mysql -u用户名 -p 回车后输入密码再回车即可。
没有配置环境变量:
需要进入到对于 mysql 的 bin 目录下去运行mysql -u 用户名 -p 回车后输入密码。
所有的 sql 语句的结束标识符都是分号 ;
Mysql 的默认端口号是 3306,非必要勿修改.
数据库又称 DB 英文全称是 database
数据库系统又称 DBS 英文全称是 database system
数据库管理员又称 DBA 英文全称是 database administrator
数据库管理系统又称 DBMS 英文全称是 database management system
查看当前连接下有哪些数据库:
show databases;
进入指定数据库:
use 数据库名;
查看当前数据库有哪些表:
show tables;
查看指定表的表结构:
desc 表名;
describe 表名;
查看当前连接是哪个数据库:
select database();
查看当前是使用哪个用户连接的数据库:
select user();
查看指定表中的所有数据
slect * from [库名.]表名
Dos 命令窗口下退出 mysql
quit exit ctrl+c
创建指定名称的数据库
create database 库名;
创建指定名称的数据库时规定 utf8 的字符集
Create database 库名 default character set utf8 collate utf8_general_ci;
修改指定数据库的字符集为 utf8
Alter database 库名 character set utf8 collate utf8_general_ci;
删除指定数据库
Drop database 库名;
创建指定名称的表
Create table [库名.]表名 (列名 1 数据类型 1(长度), 列名 2 数据类
型 2(长度));
为指定的表增加一列
Alter table [库名.]表名 add [column] 列名 数据类型(长度);
为指定的表删除一列
Alter table [库名.]表名 drop column 列名;
为指定的表修改名字
Alter table [库名.]表名 rename to 新表名;
Rename table [库名.]表名 to 新表名;
为指定表添加主键约束
Alter table [库名.]表名 add primary key(本表主键列);
为指定表删除主键约束
Alter table [库名.]表名 drop primary key;
注意:如果主键正在被其他表的外键引用,删除会报错
为指定表添加非空约束
Alter table [库名.]表名 modify 列名 数据类型(长度) not null;
注意:修改时注意数据兼容性
修改指定表中指定列的列名
Alter table [库名.]表名 change 旧列名 新列名 数据类型(长度);
将指定表中的指定列设为外键
Alter table [库名.]表名 add constraint 约束名 foreign key (本表外键列名) references 被引用的表名(被引用的列名);
注意:被引用的列需要主键约束或唯一约束
删除指定表中的外键
第一步
Alter table [库名.]表名 drop foreign key 约束名;
第二步
Drop index 索引名 on [库名.]表名;
复制表仅结构
Create table 新表名 like 被复制的表名;
复制表数据加结构
Create table 新表名 as select * from 被复制的表名;
创建表时规定主键
方法一
Create table [库名.]表名 (列名 1 数据类型 1(长度) primary key,列名 2 数据类型 2(长度));
方法二
Create table [库名.]表名 (列名 1 数据类型 1(长度), 列名 2 数据类型 2(长度), primary key (主键列名));
创建表时规定外键
Create table [库名.]表名 (列名 1 数据类型 1(长度), 列名 2 数据类型 2(长度), foreign key(本表外键列名) references 被参照的表名(被参照的列名);
查看指定表的键值
Show keys from [库名.]表名;
向指定表插入单行数据
第一种
Insert into [库名.]表名 values (列值 1,列值 2,…,列值 n);
(1) 列值的书写顺序,会影响实际插入表后的数据顺序
(2) 没有声明插哪些列,那么就是全插,列值的个数必须与表内列的数量一致.
第二种
Insert into [库名.]表名 (列名 1,列名 2,…,列名 n) values (列值1,列值 2,…,列值 n);
注意约束限制和数据兼容性
修改指定表中的指定数据
Update [库名.]表名 set 列名 = 新值 where 条件表达式;
删除指定表中的指定数据行
Delete from [库名.]表名 where 条件表达式;
删除指定表中的所有数据(不删表结构)
第一种
Delete from [库名.]表名;
第二种
Truncate [库名.]表名;
删除表结构
Drop table [库名.]表名;