mysql数据库的基本操作

1.存储结构:数据库database     表table  数据data;

2.SQLStructured 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 判断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筛选),在分组前可进行条件查询

注:

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)
)
原文地址:https://www.cnblogs.com/mlf19920916/p/12053621.html