mysql数据库的基本操作
1.存储结构:数据库database 表table 数据data;
2.SQL(Structured Query Language,结构化查询语言)语言:和数据库交互的语言,进行数据库管理的语言。
库的操作
3.查询所有数据库:show databases;
4.创建数据库 create database 库名 character set 字符集(utf8或gbk)
5.查看创建的数据库:show create database 库名;
6.删除数据库:drop database 库名;
7.修改数据库:alter database 库名 character set 字符集(utf8或gbk);
表的操作
1.选择数据库:use 库名;(建表前必须的一步);
2.查看库内的所有表:show tables;
3.创建表:
CREATE TABLE xiugai( sid INT, //字段名,字段类型 sname VARCHAR(10) )
4.查看表结构:desc 表名;
5.删除表:drop table 表名;
6.表的操作:
添加字段及字段类型:alter table 表名 add column 字段名称 字段类型(长度);
删除表的字段:alter table 表名 drop column 字段名称;
修改字段类型:alter table 表名 modify column 字段名 字段类型;
修改表的名称:alter table 表名 rename to 表名;
数据的操作
1.增加数据:insert into 表名 values();//括号内,按照全表的字段名和字段类型填入,并用逗号隔开;
插入部分字段: INSERT INTO student(id,NAME) VALUES(2,'李四');
注:
2.修改数据:UPDATE 表名 SET gender='男',age=30 WHERE id=2;(where为有条件)
3.删除数据:带条件的数据delete from 表名 where id=2;(删除id为2的整条数据)(不带条件时,进行全表删除);此时删除表的数据,但不能删除表的约束(非空、唯一、自增),可以进行数据的回滚
4.删除数据2:truncate table 表名:可以进行全表删除,同时删除表的约束;,此时不能进行数据的回滚。
5.查询所有列:select * from student;
6.查询指定列:select 字段名 from 表名;
7.查询时添加常量列:select 表字段名AS'新常量名' from 表名;
8.查询时合并列:select (字段名+字段名)as'总成绩'from 表名;
9.查询时去重:select distinct (字段名) from 表名;
10.条件查询:
1 查询id为2,且姓名为李四的学生 2 SELECT * FROM student WHERE id=2 AND NAME='李四'; -- 交集
1 查询id为2,或姓名为张三的学生 2 SELECT * FROM student WHERE id=2 OR NAME='张三'; -- 并集
1 比较条件: > < >= <= = <>(不等于) between and (等价于>= 且 <=) 2 -- 需求: 查询servlet成绩大于70分的学生 3 SELECT * FROM student WHERE servlet>70;
1 查询jsp成绩大于等于75,且小于等于90分的学生 2 SELECT * FROM student WHERE jsp>=75 AND jsp<=90;
1 SELECT * FROM student WHERE jsp BETWEEN 75 AND 90; -- (包前包后)
1 判断null 2 SELECT * FROM student WHERE address IS NULL ;--判空条件
1 SELECT * FROM student WHERE address='';---判空字符串
1 模糊条件: like 2 -- 通常使用以下替换标记: 3 -- % : 表示任意个字符 4 -- _ : 表示一个字符 5 -- 需求: 询姓‘张’的学生 6 SELECT * FROM student WHERE NAME LIKE '张%'; 7 8 -- 需求: 查询姓‘李’,且姓名只有两个字的学生 9 SELECT * FROM student WHERE NAME LIKE '李_';
1 聚合查询(使用聚合函数的查询) 2 -- 常用的聚合函数: sum() avg() max() min() count() 3 -- 需求:查询学生的servlet的总成绩 (sum() :求和函数) 4 SELECT SUM(servlet) AS 'servlet的总成绩' FROM student; 5 6 -- 需求: 查询学生的servlet的平均分 7 SELECT AVG(servlet) AS 'servlet的平均分' FROM student; 8 9 -- 需求: 查询当前servlet最高分 10 SELECT MAX(servlet) AS '最高分' FROM student; 11 12 -- 需求: 查询最低分 13 SELECT MIN(servlet) AS '最低分' FROM student; 14 15 -- 需求: 统计当前有多少学生(count(字段)) 16 SELECT COUNT(*) FROM student;
11.分页查询:select * from 表名 limit (当前页-1)*每页显示的条数,每页显示的条数;
12.查询排序:select * from 表名 order by 字段名 asc(默认正序,可不添加); desc(倒叙,由大到小)
13.多个字段排序,
SELECT * FROM student ORDER BY servlet ASC,jsp DESC;(前者为主排序,后者为次排序)
14.分组查询:
SELECT gender,COUNT(*) FROM student GROUP BY gender HAVING COUNT(*)>2;(必须先执行分组后,才能使用having筛选),在分组前可进行条件查询
注:
CREATE TABLE emp( id INT PRIMARY KEY,,---自己的主键 empName VARCHAR(20), deptid INT,----设置外键 -- 声明一个外键约束 constraint约束 CONSTRAINT emp_fk FOREIGN k`dept`ey(deptid) REFERENCES dept(id) )