1 DDL创建数据库
1 直接创建数据库
create databases 数据库名;
2 判断是否存在并创建数据库
create databases if not exists
3.创建数据库并指定字符集(编码表)
create database 数据库名 character set 字符集;
4. 具体操作:
直接创建建数据库db1;
create database db1;
判断是否存在并创建数据库db2;
create database if not exists db2;
创建数据库db3并指定字符集为gbk
create database db3 character set gbk;
查看数据库
1.查看所有数据库
show databases;
1.查看某个数据库的定义信息
show create database 数据库名;
小结
1.创建数据库语法:create database 数据库名;
2.查看所有数据库: show databases;
DDL修改和删除数据库
修改数据库字符集
alter database 数据库 default character set 新的字符集;
具体操作:
将db3的数据库字符集改成utf8
alter database db3 default character set utf8;
注意:如果修改数据库指定的编码表是utf8,记住不能写utf-8。utf-8是错误的。
删除数据库
dropdatabase 数据库名;
具体操作:
drop database db2;
小结
1.修改数据库字符集格式?alter database 数据库 character 新的字符集;
2.删除数据库格式? drop database数据库名;
DDL 使用数据库
1.查看正在使用的数据库
select--查询
select database();
2.使用、切换数据库
use 数据库名;
查看正在使用的数据库
select database();
使用db1数据库
use db1;
小结
DDL语句操作 关键字
创建 create database 数据库名;
修改 alter database character set 字符集
查看 show databases;
删除 drop database 数据库名;
DDL 创建表
create table 表名(字段名1 字段类型1,字段名2 字段类型2....);
建议写成如下格式:
javase
public class Student{
int age;
}
create table 表名(
字段名1 字段类型1,
字段名2 字段类型2
);
MySQL数据类型
类型 int 整型 double 浮点型 varchar 字符串型 data 日期型 ,格式为 yyyy-MM-dd,只有年月日,没有时分秒;
创建Student表包含id,name,birthday字段
create table student(
id int ,
name varchar(20),
birthday date
);
小结
1.创建表语句:create table 表名(字段名 类型,字段名,字段类型....);
2.常用数据类型: int ,double,varchar, date
DDL 查看表
1.查看某个数据库中的所有表
show tables;
2.查看表结构
desc 表名;
3.查看创建表的SQL语句
show create table 表名;
具体操作:
查看数据库中的所有表
show tables;
查看student 表结构
desc student;
查看student的创建表SQL语句
show create table student;
小结
1.查看某个数据库中的所有表:show tables;
2.查看表结构 :desc表名;
3.查看创建表的SQL语句: show create table 表名;
DDL删除
快速创建一个表结构相同的表
create table 表名 like 其他表;
具体操作:
创建s1表,s1表结构和student表结构相同
create table s1 like student;
删除表
1.直接删除表
drop table 表名;
2.判断表是否存在并删除表
drop table if exists 表名
具体操作:
直接删除s1表
drop table s1;
判断是否存在并删除s1表
drop table if exists s1;
小结
1.快速创建一个表结构相同的表: create table 表名 like 其他表;
2.删除表语法:drop table 表名;
DDL表结构修改(了解)
1.添加表列
alter table 表名 add 字段名 类型;
具体操作:
为学生添加一个新的字段remark,类型为varchar(20)
alter table student add remark varchar(20);
2.修改列类型
alter table 表名 modify 字段名 行的类型;
将student表中的remark字段改成varchar(100)
alter table student modify remark varchar(100);
3.修改列名
alter table 表名 change 旧字段名 新字段名 类型;
将student表中的remark字段改成intro,类型varchar(30)
alter table student change remak intro varchar(30);
4.删除列
alter table 表名 drop 字段名;
删除student表中的字段intro
alter table student drop intro;
5.修改表名
rename table 表名 to 新表名;
将 student 改成 student2
rename table student to student2;
6.修改字符集
alter table 表名 character set 字符集;
将student2表的编码修改成gbk
alter table student2 character set gbk;
小结
1.所有修改表前面的语法都是相同的?alter table 表名
2.添加一列: add 字段名 类型
3.修改类型: modify 字段名 新的类型
4.修改字段名和类型:change旧字段名 新字段名 类型
5.删除一列: drop 字段名
DML插入记录(重点)
创建student 表包含id,name,age,birthday,sex,address字段。
create table student(
id int,
name varchar(20),
age int,
birthday date,
sex char(2),
address varchar(50)
);
插入全部字段
insert into 表名(字段名1,字段名2...)values(字段值1,字段值2...)
不写字段名
insert into 表名values (字段值1,字段值2...)
插入部分数据
insert into表名(字段名1,字段名2...)values(字段值1,字段值2...);
没有添加数据的字段会使用NULL
1.关键字说明
insert into 表名-表示往哪张表中添加数据
(字段名1,字段名2,...)--要给哪些字段设置值
values(值1,值2,...)--设置具体的值
注意:使用 select* from 表名--查看该表的所有信息。
2.具体操作:
插入部分数据,往学生表中添加id,name,age,sex数据
insert into student(id,name,age,sex)values(1,'张三‘,20,‘男’);
向表中插入所有字段
insert into student(id,name,age,sex,address)values(2,'李四',23,'女','广州');
不写字段名
insert into student values(3,'王五',18,'男','北京');
DML更新记录
1.不带条件修改数据
update 表名 set 字段名=新的值;
2.带条件修改数据
update 表名 set 字段名=新的值 where 条件
3.关键字说明
update:表示修改记录
set:要改哪个字段
4.具体操作:
不带条件修改数据,将所有的性别改成女
update student set sex='女';
带条件修改数据,将id号为2的学生性别改成男
update student set sex=‘男’where id=2;
一次性修改多个列,把 id为3的学生,年龄改成26岁,adress改成北京
update student set age=26,address='北京'where id=3;
小结
1.不带条件的更新数据库记录,update table set 字段名=新的值;
2.带条件:update table set 字段名=新的值 where 条件;
DML删除表记录
1.不带条件删除数据
delete -- 删除记录
delete from 表名;
2.带条件删除数据
delete from 表名 where 条件;
3.truncate删除表记录
truncate table 表名;
truncate和delete的区别:
delete是将表中的数据一条一条删除
truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样
小结
1.指定条件删除:delete from 表名where 条件;
2.没有条件删除所有的记录: delete from 表名;
3,删除表结构再创建表:truncate table表名;
DQL没有条件的简单查询
查询表中所有列数据
1.写出查询每列的名称
select --表示查询
select 字段名1,字段名2,...from 表名;
具体操作:
select id,name,age,sex,address from student;
1.使用*表示所有的列
select *from 表名;
具体操作:
select *from student;
查询表中指定列的数据
select 字段名1,字段名 2 from表名;
查询student表中的name,age from student ;
select name ,age from student;
别名查询
查询时给列、表指定别名需要使用AS关键字
使用别名的好处是方便观看和处理查询到的数据SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名;SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名 AS 表别名;注意:
查询给表取别名目前还看不到效果,需要到多表查询的时候才能体现出好处AS关键字可以省略
具体操作:
查询sudent表中name 和 age 列,name列的别名为”姓名”,age列的别名为”年龄”
SELECT NAME AS 姓名, age AS 年龄 FROM student;
清除重复值
1.查询指定列并且结果不出现重复数据
SELECT DISTINCT 字段名 FROM 表名;
2.具体操作:
查询address列并且结果不出现重复的address
select distinct address 城市 from student;
查询math + english的和
SELECT math + english FROM student;
查询math + english的和使用别名”总成绩”
SELECTmath + english 总成绩FROMstudent;
小结
1.简单查询格式: select 字段名,字段名...from 表名;
2,定义别名:select 字段名 as 别名 from 表名;
3.去除重复行: select distinct 字段名 from 表名;
4.数值列,可以进行计算,不会影响表中数据
蠕虫复制
insert into 表名1select*from表名2;
创建student2表,student2结构和student表结构一样
create table student2 like student;
将 student表中的数据添加到student2表中
insert into student2 select *from student;
注意:如果只想复制student表中name,age字段数据到student2表中使用如下格式
insert into student2(name,age)select name,age from student;