目录
创建数据库
1、创建数据库不指定字符集
CREATE DATABASE mytestdb;(使用默认的字符集)
2、创建数据库并指定字符集
CREATE DATABASE mytest2 CHARACTER SET 'gbk';
3、如果数据库不存在的话则直接创建,如果存在,创建不成功但不报错
CREATE DATABASE IF NOT EXISTS mytest2 CHARACTER SET 'utf8';
数据库的管理
1、查看当前连接中的数据库都有哪些
SHOW DATABASES;
2、切换数据库
USE mytest2;
3、查看当前数据库中有哪些表
SHOW TABLES;
4、查看当前使用的数据库
SELECT DATABASE() FROM DUAL;
5、查看指定数据库下存的表
SHOW TABLES FROM mysql;
修改数据库
(数据库是不能改名)
1、更改数据库的字符集
ALTER DATABASE mytest2 CHARACTER SET 'utf8';
2、删除数据库
DROP DATABASE mytest1;
推荐
DROP DATABASE IF EXISTS mytest1;
创建数据表
CREATE TABLE IF NOT EXISTS myemp1(
id INT,
emp_name VARCHAR(15),使用varchar来定义字符串,必须在使用varchar时指明长度
hire_date DATE
);如果创建表时没有指明使用的字符集,则默认使用表所在数据库所用的字符集。
基于现有的表创建表
CREATE TABLE myemp2 AS SELECT employee_id ,last_name,salary FROM employees;
练习
1.复制一张表,包括表数据
CREATE TABLE myemp3 AS SELECT * FROM myemp2;
复制一张表,不包含表数据
CREATE TABLE myemp4 AS SELECT * FROM myemp2 WHERE 1=2;
1、查看表结构
DESC myemo1;
SHOW CREATE TABLE myemp2;
SELECT * FROM myemp2;
2、修改表--》alter table
添加一个字段,
ALTER TABLE myemp1 ADD salary DOUBLE(10,2);(一共10位,小数位2位)默认加到表的最后一个字段
ALTER TABLE myemp1 ADD phone_number VARCHAR(20) FIRST;
ALTER TABLE myemp1 ADD email VARCHAR(45) AFTER emp_name;
3、修改字段
ALTER TABLE myemp1
MODIFY emp_name VARCHAR(35) DEFAULT 'aaa';修改长度,并添加默认值
4、重命名字段
ALTER TABLE myemp1 CHANGE salary monthly_salary DOUBLE(8,2);
5、删除字段
ALTER TABLE myemp1 DROP COLUMN email;
6、重命名表
RENAME TABLE myemp2 TO myemp22;(方式一)
ALTER TABLE myemp2 RENAME TO myemp22;(方式二)
7、删除表
DROP TABLE IF EXISTS myemp3;
8、清空表
TRUNCATE TABLE myemp1;
7DCL 中 commit和rollback
COMMIT 提交数据,一旦执行commit,则数据就被永久保存在数据库中,不能回滚rollback
8truncate table he delete from
相同点:都可以实现对表中所有数据的删除,同时保留表结构
TRUNCATE TABLE 一旦执行操作,表数据全部清楚,同时,数据不能回滚
DELETE FROM 一旦执行此操作,表数据可以可全部清除(不带where)。同时数据是可以回滚,也可以不回滚
ddl 的操作一旦执行,就不可以回滚
dml的操作,默认情况下,一旦执行,也是不可以回滚,但是在执行dml之前执行了set atuocommit = FALSE ,则执行的dml操作就可以实现回滚
SHOW CREATE DATABASE mytest2
SHOW VARIABLES LIKE 'character_%'