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,'李四');
注:
字符串类型和日期类型:需要加引号 (’ ')
如CHAR、VARCHAR、TEXT、DATE、DATETIME、TIMESTAMP、YEAR、TIME等数据类型的数据需要加引号
整数和浮点型的:不需要加
如TINYINT、SMALLINT、MEDIUMINT、INT、FLOAT、DOUBLE、DECIMAL等
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 判断null2 SELECT * FROM student WHERE address IS NULL ;--判空条件
1 SELECT * FROM student WHERE address='';---判空字符串
1 模糊条件: like2 --通常使用以下替换标记: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筛选),在分组前可进行条件查询
注:
1.float(8, 2)的8代表小数点前8位,2代表小数点后2位,这仅仅是存储时的格式
2.小数点的保留最好在selete查询中显示
selete format(字段名,2)from 表名
3.decimal(10,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。,其中10为总长度。
CREATE TABLE emp(
id INT PRIMARY KEY,,---自己的主键
empName VARCHAR(20),
deptid INT,----设置外键--声明一个外键约束 constraint约束
CONSTRAINT emp_fk FOREIGN k`dept`ey(deptid) REFERENCES dept(id)
)
————————————————
版权声明:本文为CSDN博主「科研留守儿童」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_35426348/article/details/113268657