数据库
添加数据库
create database 数据库名;
CREATE DATABASE dbhouse;
create database if not exists 数据库名; //先判断数据库名是否存在,如果不存在,则添加。
CREATE DATABASE IF NOT EXISTS dbhouse;
删除数据库
drop database 数据库名;
DROP DATABASE dbhouse;
修改数据库
- 不能修改数据库的名字
修改数据库的字符集, cmd默认gbk, mysql图形化界面默认 utf8;
alter database 数据库名 character set 字符集类型;
ALTER DATABASE dbhouse CHARACTER SET utf8;
查看数据库
查看所有数据库
show databases;
查看当前数据库
select database();
查看某个数据库信息
show create database 数据库名;
表
创建表
- create table 表名称(字段的名称 字段的类型 【约束】,字段的名称 字段的类型 【约束】,字段的名称 字段的类型 【约束】);
常见类型 int(整形) double(浮点型) varchar(字符串) date(日期类型,只有年月日,没有时分秒)
CREATE TABLE student (sno INT,sname VARCHAR(32),sex VARCHAR(32),age INT);
删除表
drop table 表名
DROP TABLE student;
修改表
修改表的名称
rename table 表名 to 新表名;
增加列
alter table 表名 add 列名 数据类型;
删除列
alter table 表名 drop 列名 ;
修改名称和类型
alter table 表名 change 旧列名 新列名 数据类型;
修改类型
alter table 表名 modify 列名 数据类型;
修改字符集
alter table 表名 character set 字符集类型;
查看表
查看所有表
show tables;
查看创建表
show create table 表名;
查看表内描述信息
desc 表名;
如何快速创建一个相同的表
create table 新表明 like 旧表名
CREATE TABLE teacher LIKE student;
数据
添加数据
插入全部字段
insert into 表名 values(数据1,数据2,数据3,…);
INSERT INTO student VALUES(1,'娜娜','女',...);
插入部分数据
insert into 表名(字段1,字段2,字段3,…) values(数据1,数据2,数据3,…);
INSERT INTO student(sno,sname,sex,...) VALUES (2,'小溪','女',...);
- 注意:
- a、第一种语法,数据库有多少字段,必须按照字段的顺序添加
- b、第二种语法,数据库可以选择字段添加,但是类型要 一致,字段的个数一致
删除数据
delete from 表名 [where条件]
DELETE FROM student WHERE sno=1;
2.truncate 重构表
truncate 表名; //先删除表,在重新创建表
修改数据
update 表名 set 字段名称1=值1,字段名称1=值1…[where 条件]
UPDATE student SET name='小娜' WHERE sno=1;
查看数据
查询所有数据
select * from 表名;
查询指定列
select 列名1,列名2 from 表名;
别名查询
select 列名1 as 别名1,列名2 as 别名2,列名3 as 别名3 from 表名; //给每一列起一个别名 select * from 表名 as 别名; //给表起一个别名(常用)
去重查询
注意:需要查询的数据最后的结果一模一样,才会去重,只要有一个字段不一样,都不去重
select distinct 列名1,列名2 from 表名;
计算列
注意:null 不参与计算
select 列名1,列名2+5 from 表名 //列名2的数据+5
蠕虫复制
- 概念:其实就是将表的结构复制,标的数据复制.
- 应用场景:备份数据的过程
- 作用:将表名2中的数据复制到表名1中
语法格式:INSERT INTO 表名1 SELECT * FROM 表名2;
INSERT INTO teacher SELECT * FROM student;
拓展
函数(ifnull)
- ifnull 函数 一般是用来参与计算,因为null不进行计算 将计算的值都变为null
- 参数1:需要判断的列
- 数2:如果为null以后 需要变为什么值
- select ifnull(列名,值) as 别名 from 表名
now()函数
- select now(); 查询现在的日期
添加数据
数据准备
CREATE TABLE student (sno INT,sname VARCHAR(32),sex VARCHAR(32),age INT);
正常添加
INSERT INTO student VALUES(1,'娜娜','女',18);
非正常添加
INSERT INTO student VALUES('1','娜娜','女','18');
- 正常添加和非正常添加都能添加成功