MySQL数据库打开:找到bin目录下的mysql.exe
打开黑窗口以后输入:mysql -hlocalhost -uroot -p
点小企鹅,连接数据库
名称:ls
dd987f34-f358-4894-bd0f-21f3f04be9c1
DDL对数据库的操作:
新建:create,查看:show,修改:alter,删除:drop,,,查询:select
-- 新建一个数据库: create database db1;
-- 判断是否存在 如果不存在新建一个数据库: create database if not exists db2;
-- 新建一个数据库 并且指定编码集, 指定:default:create database db3 default character gbk;
-- 查看所有的数据库: show databases;
-- 查看数据库的定义信息: show create database db3;
-- 修改数据库的编码集: alter database db3 character set utf8;
-- 删除数据库: drop database db2;
-- 查看当前所有数据库: show databases;
-- 查看当前正在使用的数据库: select database();
-- 改变当前在用的数据库: use db3;
DDL对表结构的操作:
创建表的语法:create table 表名(字段名 数据类型,字段名 数据类型);字段名和数据类型之间空格连接,最后一个没有逗号
常用数据类型:int 整数;double 浮点数;varchar 字符串 data 日期 例如:'2020-11-27'
create table student(
name varchar(20),
birthday data
);
-- 查看当前在用数据库中的所有表:SHOW TABLES;
-- 查看当前的表结构:DESC student;
-- 查看创建表的语句:SHOW CREATE TABLE student;
-- 快速创建一个相似的表:CREATE TABLE teacher LIKE student;
-- 删除表:DROP TABLE teacher;
-- 判断是否存在并删除:DROP TABLE IF EXISTS teacher;
-- 修改表结构 add 为学生表添加一个新的字段:ALTER TABLE student ADD sex VARCHAR(5);
-- 修改表结构中的字段数据类型:ALTER TABLE student ADD sex VARCHAR(5);
-- 修改表结构中的字段名 change:
ALTER TABLE student ADD adress VARCHAR(10);
ALTER TABLE student CHANGE adress adresss VARCHAR(15);
-- 修改表名:RENAME TABLE student TO student1;
#dml 操作表中的数据 对表的结构进行增删改
添加:insert into 修改:update 删除:delete
-- 向表结构中添加数据 insert into 表名(字段名)values(字段值);
INSERT INTO student(NAME,birthday,sex,address) VALUES('孙悟空','2020-11-17','男','贝吉塔行星');
DESC student;//只能查看表结构,不能看到表数据
可以右键打开表,查看表结构:
也可以select:
-- 第二种添加方式 省略字段名,必须是全部字段值都一起添加
INSERT INTO student VALUES('孙悟饭','2020-11-17','男','地球');
-- 添加部分字段的值
INSERT INTO student(NAME, birthday) VALUES('孙悟天','2020-11-20');
-- 查询表中的所有数据
SELECT * FROM student;
-- 蠕虫复制,的相关内容,复制表中的数据到另一个表中(先创建一个类似stu的表试图,然后插入stu的数据)
-- insert into 表名1 select * from 表名2
CREATE TABLE student1 LIKE student;
DESC student1;
INSERT INTO student1 SELECT * FROM student;
-- 复制指定字段的数据给另外一个表
CREATE TABLE student2 LIKE student;
INSERT INTO student2 (NAME,sex) SELECT NAME,sex FROM student1;
SELECT * FROM student2;
-- dml修改表中的数据 update 表名 set 列名 = 值[where = 条件表达式];
SELECT *FROM student;
-- 更新表格中的一列数据
UPDATE student SET sex = '女';
-- 根据条件进行更新
UPDATE student SET sex = '男' WHERE NAME = '孙悟空';
UPDATE student SET sex = '超级赛亚人' WHERE NAME = '孙悟天';
-- dml删除表中的数据 delete from 表名 [where 条件表达式]
-- 删除表中所有的数据
DELETE FROM student1;
SELECT * FROM student;
-- 根据条件进行删除
DELETE FROM student WHERE NAME = '孙悟饭';
#dql 查询表中的数据 select
-- 查询表中的所有数据
SELECT * FROM student;
-- 查询某列的数据 select 字段名1,字段名2 from 表名;
SELECT NAME,sex FROM student;
-- 指定列按照别名进行查询 as 别名:我们自己给字段名起的名称
SELECT NAME AS '名称',sex AS '性别' FROM student;
-- 给表名加上别名
SELECT NAME AS '名称',sex AS '性别' FROM student AS s1;
UPDATE student SET sex = '男' WHERE NAME = '孙悟天';
-- 查询出的数据自动去重 DISTINCT
SELECT DISTINCT sex FROM student;
-- 条件查询
CREATE TABLE person(
id INT,
NAME VARCHAR(20),
sex VARCHAR(5),
math INT,
english INT
);
DESC person;
INSERT INTO person VALUES(1,'马云','男',67,99);
INSERT INTO person VALUES(2,'马化腾','男',89,77),(3,'马保国','男',56,78);
INSERT INTO person VALUES(4,'马冬梅','女',44,66),(5,'马蓉','女',44,66),(6,'德马西','女',44,66);
SELECT * FROM person;
/*
比较运算符:
< > <= >= 没有==,只有=,<>表示不等,或者 !=
in(集合) 集合中的数据要用逗号隔开
between and 表示一个范围 例如 100-200之间
like '张%' 模糊查询,含有张--'%张%'
is null 查询某一列中的null(空值)
逻辑运算符:
and && 与
or || 或
not ! 非
*/
-- 查询数学分数大于80的人
SELECT NAME FROM person WHERE math>80;
-- 查询英语分数小于60分的人
SELECT * FROM person WHERE english<60;
-- 查询数学分数不等于89分的人
SELECT * FROM person WHERE math!=89;
SELECT * FROM person WHERE math<>89;
-- 查询数学分数大于80,并且英语大于90
SELECT * FROM person WHERE math>=80 AND english>90;
-- 查询id为1或3的人
SELECT * FROM person WHERE id=1 OR id=3 || id=5;
-- in关键字 1,3,5
SELECT * FROM person WHERE id IN(1,2,5);
-- 查询数学分数80-100之间的人 包前包后
SELECT * FROM person WHERE math BETWEEN 80 AND 100;
-- like 关键字
-- 查询姓马的人 %通配
SELECT * FROM person WHERE NAME LIKE '马%';
-- 查询名字中包含蓉的人
SELECT * FROM person WHERE NAME LIKE '%化%';
-- 查询名字中包含国的人
SELECT * FROM person WHERE NAME LIKE '%国%';