MySQL学习小结
来源:互联网 发布:ubuntu 稳定版本 编辑:程序博客网 时间:2024/05/01 06:39
在cmd命令行下输入 mysql -u root -p
进入到MySQL数据库登录界面
-u 说明输入用户名
-p 说明需要输入密码
SQL语句默认以分号结尾,只有识别到;就认为语句已经结束
1.显示当前所有的数据库 show databases;
information_schema
mysql
test
information_schema和mysql不可以更改,因为放置的是数据的的配置信息和编码方式
test可以随便更改,test只是数据库的是一个实例
所谓安装数据库服务器,只是在机器上装了一个数据库管理程序。
这个管理程序可以管理多个数据库
一个数据库可以有多个用户
每个用户都可以以在数据库中创建自己的表结构
在数据库中,数据存在表中
在数据库中,表示意行列的形式存在的
表中定义表存储的内容的那一行,被称为表头
表中的一行称之为一条记录
表中的一条记录对应一个Java对象的数据
表中的一列对应一个Java对象的一种属性
DDL data Definition Language
作用:用于描述数据库中存储的现实世界实体的性质。即创建数据库和表结构。
常用关键字create alter drop truncate
查看数据库支持的字符集
show character set;
查看某种字符集的校验规则
show collation like 'utf8%';
在MySQL数据库中utf-8的写法为utf8
SQL语句的定义:数据库的关键字用全部大写的形式 非关键字用小写的形式
MySQL语句的大小写问题:在飞Windows系统中,严格区分大小写
在Windows下,不区分大小写
创建数据库
CREATE DATABASE 数据库名;
在MySQL中查看一般都用show ;
查看某个数据库的字符编码
SHOW CREATE DATABASE 数据库名
创建数据库时,如果没有有指定数据库的编码集,默认使用数据库软件安装时指定的编码
创建数据库时指定数据库的编码集
CREATE DATABASE 数据库名 CHARACTER SET 编码集
CREATE DATABASE test1 CHARACTER SET gbk;
create database day15 defualt character set utf8;
修改数据库的编码集
ALTER DATABASE 数据库名 CHARACTER SET 编码集;
删除数据库 DROP 数据库名;
------------------------------------
查看当前选择数据库
select database();
指定使用的数据库
USE 数据库名
指定数据库以后,创建的表,都属于这个数据库
在数据库中创建表结构
CREATE TABLE 表明(
字段 datatype(指定的数据类型),
字段 datatype,
字段 datatype
)character set 字符集 collate 校验规则
在创建表结构时,如果不指定字符集,则使用数据库默认的字符集
查看数据库中的所有表格
show tables;
查看表结构:
desc 表名
删除表结构
drop table 表名;
CREATE TABLE student(
id INT,
name VARCHAR(40),
gender VARCHAR(4),
age INT);
在表中增加数据
方式一:全值插入,给所有的字段赋值,依次按顺序插入,不能少或者多。
INSERT INTO 表名 VALUES(值集);
值与值之间用英文逗号,分割,整数类型的数值直接写,字符串类型的数值用英文单引''号引起来
插入的值必须是对应表的结构的,且按照顺序插入
INSERT INTO student VALUES(1,'aa','man',13);
方式二:使用列名插入
INSERT INTO student(列名,列名,……)VALUE (值,值,……);
列和值的类型需要匹配
INSERT INTO student(id,NAME)VALUE (3,'王五');
查询数据
1.查询表中的所有数据
SELECT * FROM 表名;
SELECT * FROM student;
2.查询表中的某些列的值
SELECT 字段,字段 FROM 表名;
SELECT id,name FROM student;
3.查询时可以指定别名,指定别名后,该列在显示时将以别名显示出来
SELECT 列名 AS 别名,列名 AS 别名,…… FROM 表名;
SELECT id AS '编号',NAME AS '姓名' FROM student;
表也可以起别名,表的别名不能用字符串表示
SELECT 表的别名.列名 AS 别名,表的别名.列名 AS 别名,…… FROM 表名 AS s;
SELECT s.id AS '编号',s.NAME AS '姓名' FROM student AS s;
表的别名主要在多表查询时使用,单表查询时,表的别名没有意义
4.查询时添加一个常量列,常量列名也可以使用别名
-- 在查询表示,添加一个常量列,说明学生所属的班级
SELECT 列名,列名,列名, 要增加的常量字符串列名 FROM 表名;
SELECT id,NAME,age, 'java基础学习班' FROM student;
5.查询时合并列 合并的列用'+'连接 语法(列名+列名)
合并列只能合并数值类型的字段,非数值类型的列不能合并
数值型和非数值型合并,最终只会显示数值型的值
-- 给student表添加数学和语文成绩列
给表添加多个列时,可以同时添加。
ALTER TABLE 表名 ADD 列名 数据类型,ADD 列名 数据类型,……;
ALTER TABLE student ADD yuwen INT,ADD shuxue INT;
-- 在student表中加上这两科的成绩
UPDATE student SET yuwen=80,shuxue =15 WHERE id=1;
UPDATE student SET yuwen=80,shuxue =15 WHERE id=1;
UPDATE student SET yuwen=70,shuxue =80 WHERE id=2;
UPDATE student SET yuwen=80,shuxue =90 WHERE id=4;
-- 查询每个学生的语文和数学的总成绩
-- 合并列合并的是这两列的值 可以给合并列起一个别名。
SELECT 列名,列名 ,(列名+列名) AS 别名 FROM 表名;
SELECT id,NAME ,(yuwen+shuxue) AS '总成绩' FROM student;
6.去除重复的列
需求:查询学生的性别
SELECT DISTINCT 列名 FROM 表名;
SELECT DISTINCT gender FROM student;
SELECT DISTINCT(列名) FROM 表名;
SELECT DISTINCT(gender) FROM student;
在表中加入地址
ALTER TABLE student ADD address VARCHAR(60);
UPDATE student SET address='云南曲靖' WHERE id=1;
UPDATE student SET address='云南曲靖' WHERE id=2;
UPDATE student SET address='云南昆明' WHERE id=4;
查寻学生所在地区:去除重复
SELECT DISTINCT(address) FROM student;
7.条件查询 关键字where
7.1逻辑条件 关键字 and(相当于与) or(相当于或)
-- 需求:查询id为2,且姓名为李四的学生
-- 两个或者两个以上的查询条件,必须用逻辑连接词
-- 对于没有具体信息要求的,查询项默认使用*
SELECT * FROM student WHERE id=2 AND NAME='李四';
-- 需求:查询id为1,或者姓名为李四的学生
SELECT * FROM student WHERE id=1 OR NAME='李四';
7.2比较条件: >(大于) <(小于) >=(大于等于) <=(小于等于) <>(不等于)
between and 在什么之间
-- 查询语文成绩大于70分的学生
SELECT * FROM student WHERE yuwen>70;
-- 查询语文成绩大于等于70,且小于等于八十十分的学生
SELECT * FROM student WHERE yuwen>=70 AND yuwen<=80 ;
-- 相当于between and等价于 小于等于 ---大于等于---
SELECT * FROM student WHERE yuwen BETWEEN 70 AND 80;
-- 查询语文成绩不等于80分的学生
SELECT * FROM student WHERE yuwen <>80;
-- 查询语文成绩小于80分的学生
SELECT * FROM student WHERE yuwen<80;
7.3判空条件
判断null is null /is not null
判断"" =''或者是<>''
-- 查询地址为空的学生
null表示没有值,空字符串是有值的,只是之唯恐
-- 插入null并不表示插入的值是空,只有(NULL)才是空
INSERT INTO student VALUES(3,'张的海','男',25,74,98,'(NULL)');
INSERT INTO student VALUES(5,'小五','女',25,55,98,'');
SELECT * FROM student;
-- 查询地址为空的学生
SELECT * FROM student WHERE address IS NOT NULL;
SELECT * FROM student WHERE address IS NULL;
SELECT * FROM student WHERE address ='';
SELECT * FROM student WHERE address <>'';
SELECT * FROM student WHERE address IS NULL OR address ='' ;
7.4模糊条件 关键字 like like后面的条件后面经常加上%
%表示匹配任意字符
_表示匹配一个字符, _ 可以同时使用多个
-- 查询所有云南的学生
SELECT * FROM student WHERE address LIKE '云南%';
8.聚合查询
使用聚合函数的查询称为聚合查询
常用的聚合函数有:
sum(),求和
查询所有学生的语文的总成绩
SELECT SUM(yuwen) AS '总成绩' FROM student;
avg(),求平均数
查询所有学生的语文的平均分
SELECT AVG(yuwen) AS '平均分' FROM student;
max(),求最大值
查询所有学生的语文的最高分
SELECT MAX(yuwen) AS '最高分' FROM student;
min(),求最小值
查询所有学生的语文的最低分
SELECT MIN(yuwen) AS '最低分' FROM student;
count(); 统计某个字段里面有多少值。
该函数会排出空值NULL,统计多个字段时,会返回其中的最大值。
SELECT COUNT(字段或者*)FROM student;
9.分页查询 关键字limit 起始行 ,要查的行数,即查询几行
起始行从0开始。
-- 查询出第一和第二条的记录
SELECT * FROM student LIMIT 0,2;
分页查询的关键点:当前所在页面是第几页,每页显示多少条记录
在分页查询中查询当前页的数据的失去了语句
SELECT * FROM 表名 LIMIT (当前页-1)*每页显示的条数,每页显示的条数
10.排序查询
默认情况下按照插入式时的顺序排序
语法:order by 字段 asc/desc
asc:正序排列,如果是数值,则按照递增的方式排序,如果是字母,按照自然属性排序a-z
desc:倒序排序 ,如果是数值,则按照递减的方式排序,如果是字母,按照z-a排序
如果有相同数值,会按照默认方式排序,即插入时的顺序排列相同的数值
SELECT * FROM student ORDER BY age ASC ;
SELECT * FROM student ORDER BY age DESC ;
SELECT * FROM student ORDER BY age; 不写排序关键字时,按照升序排序
当有多个排序条件时 排序条件用引文都好隔开
如果第一个条件有相同数值,按照第二个条件进行排序,依次类推
11.分组排序 关键字 group by
需求查询男女同学各自的人数
第一步,按照性别分组
SELECT gender FROM student GROUP BY gender;
第二部统计每个分组的人数
SELECT gender,count(*) FROM student GROUP BY gender;
一旦有分组,count()统计的就是分组里面各自的人数
分组之前的条件筛选用where。 分组之后,只能使用having语句来进行条件筛选。
修改表中的数据
UPDATE 表名 SET 字段名=要修改的值;
表中所有的数据的该字段的值都会被修改
UPDATE student SET id=2;
更多的只是修改表中符合某一个条件的字段的值
UPDATE 表名 SET 字段名=要修改的值,字段名=要修改的值,…… WHERE 条件;
UPDATE student SET id=1 WHERE NAME='张三';
OOD 面向对象设计
OOP 面向对象编程
OOAD 面向对象分析与设计
删除表中的数据
1.删除表中的所有数据
DELETE FROM 表名;
DELETE FROM student;
2.删除表中符合某一条件的数据
DELETE FROM 表名 WHERE 条件;
DELETE FROM student WHERE name='aa';
3.删除表中的所有数据
TRUNCATE TABLE 表名;
TRUNCATE TABLE student;
delete可以删除表中的数据,但是不能删除表中的约束
truncate可以删除表中的数据和约束
- MySQL 通配符学习小结
- php&mysql学习小结
- mysql 学习小结
- 学习mysql小结
- MySQL 通配符学习小结
- MySQL 通配符学习小结
- MySQL学习小结
- mysql学习小结
- Mysql学习小结
- MySQL学习阶段小结
- MySQL学习小结
- MySQL存储过程学习小结
- MYSQL存储过程学习小结
- MySQL存储过程学习小结
- MySQL学习小结:MySQL常用数据类型、常用MySQL查询语句
- MySql的存储过程学习小结
- 数据库(mysql oracle)学习小结
- 【SQL优化】MYSQL优化学习小结
- hdu 2089 不要62(数位dp)
- Poj 3352 Road Construction & Poj 3177 Redundant Paths(边双连通分量+缩点)
- 解决错误:/gen already exists but is not a source folder. Convert to a source folder or rename it
- 设计模式——单例设计模式
- Hadoop学习笔记之深入浅出MR
- MySQL学习小结
- JAVA调用R语言
- Python前期安装
- ubuntu 14.10
- using virtual environment to develop your project
- Android退出程序(三)——Android事件总线
- Mac OS X上使用Wireshark抓包
- (ZT)VC中#pragma warning指令
- mac 和ubuntu 启用root