MySQL系列:(2)MySQL基础
2016-06-10 18:12
417 查看
1、数据库引入
1.1、引入
数据保存到【内存】:优点:读写非常快缺点:程序关闭导致数据丢失数据保存到【文件】:优点:数据可以永久保存缺点:1)频繁地IO操作,效率不高!2)数据管理不方便。例如查询某个数据需要全部读取出来,再匹配。数据保存到【数据库软件】:优点:1)数据永久保存下来。2)数据管理非常方便。(例如查询非常快速和方便) 数据可以说是企业的灵魂!!1.2、什么是数据库软件
数据库,俗称数据的仓库。方便管理数据的软件(或程序)。1.3、市面上数据库软件
Oracle,甲骨文公司的产品。 当前最流行应用最广泛的数据库软件。和java语言兼容非常好。适合中大型,中大应用。SQL Server: 是微软公司的产品。window平台应用非常广泛。和c#,net平台兼容非常好。DB2: IBM公司的产品。IBM服务器--> UNIX -> DB2- > WebsphereMySQL: 开源组织的产品。甲骨文公司的产品。免费!!!和java语言兼容非常好!适合中小企业,中小应用以上都是关系型数据库。MongoDB:非关系型数据库。1.4、MySQL入门
1)到mysql官网下载。2)安装mysql软件3)使用验证是否成功:打开cmd -> 输入 mysql -u root -p 回车 -> 输入密码 回车1.5、MySQL的数据库存储结构
先【数据库】,再【表】,再有【数据】2、数据库管理
查询所有数据库:show databases;创建数据库:create database 数据库名 default character set utf8;create database testdb default character set utf8;查看数据库的默认字符集: show create database 数据库名;create database testdb default character set utf8;修改数据库: alter database 数据库名 default character set 字符编码;alter database testdb default character set gbk;删除数据库:drop database 数据库名;drop database testdb;使用数据库:use 数据库名;use testdb;3、表管理
在进行表管理之前,一定要使用某一个数据库:use 数据库名;查看所有表:show tables;创建表: CREATE TABLE T_Students(Id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
gender BIT NOT NULL
)
查看表结构:desc 表名;查看创建表的SQL语句:show create table 表名;删除表:drop table 表名;修改表:添加字段:alter table 表名 add column 字段名 字段类型;删除字段:alter table 表名 drop column 字段名;修改字段类型:alter table 表名 modify column 字段名 字段类型;修改字段名称:alter table 表名 change column 旧字段名 新字段名 字段类型;修改表名称:alter table 表名 rename to 新表名;
4、增删改数据
增加数据插入所有字段。一定依次按顺序插入。注意不能少或多字段值INSERT INTO student VALUES(1,'张三','男',20);插入部分字段INSERT INTO student(id,NAME) VALUES(2,'李四');修改数据修改所有数据(建议少用)UPDATE student SET gender='女';带条件的修改(推荐使用)UPDATE student SET gender='男' WHERE id=1;修改多个字段,注意: SET 字段名=值,字段名=值,....UPDATE student SET gender='男',age=30 WHERE id=2;删除数据删除所有数据(建议少用)DELETE FROM student;带条件的删除(推荐使用)DELETE FROM student WHERE id=2;另一种方式TRUNCATE TABLE student;delete from和truncate table的对比delete from: 可以全表删除,1)可以带条件删除;2)只能删除表的数据,不能删除表的约束;3)使用delete from删除的数据可以回滚(事务)truncate table: 可以全表删除 1)不能带条件删除 2)即可以删除表的数据,也可以删除表的约束 3)使用truncate table删除的数据不能回滚5、查询数据(重点)
5.1、查询所有列
SELECT * FROM student;5.2、查询指定列
SELECT id,name,gender FROM student;5.3、查询时添加常量列
SELECT id,name,gender,age,'hello world' AS 'msg' FROM student;5.4、查询时合并列
SELECT id,(math+english) FROM scores;-- 注意:合并列只能合并数值类型的字段5.5、查询时去除重复记录
SELECT DISTINCT gender FROM student;5.6、条件查询
逻辑条件: and(与) or(或)SELECT * FROM student WHERE id=2 AND NAME='李四'; -- 交集SELECT * FROM student WHERE id=2 OR NAME='张三'; -- 并集比较条件: > < >= <= = <>(不等于) between and (等价于>= 且 <=)SELECT * FROM scores WHERE math>70;判空条件(null 空字符串): is null / is not null / ='' / <>''SELECT * FROM student WHERE address IS NULL OR address=''; -- (包括null和空字符串)模糊条件: like-- 通常使用以下替换标记:% 表示任意个字符,_ 表示一个字符。SELECT * FROM student WHERE name LIKE '李%';SELECT * FROM student WHERE name LIKE '李_';5.7、聚合查询
SELECT SUM(math) AS 'math的总成绩' FROM scores;SELECT AVG(math) AS 'math的平均分' FROM scores;SELECT MAX(math) AS '最高分' FROM scores;SELECT MIN(math) AS '最低分' FROM scores;SELECT COUNT(*) FROM student;SELECT COUNT(id) FROM student;-- 注意:count()函数统计的数量不包含null的数据。因此,使用count统计表的记录数,要使用不包含null值的字段。5.8、分页查询
limit 起始行,查询几行起始行从0开始分页:当前页 每页显示多少条分页查询当前页的数据的sql: SELECT * FROM student LIMIT (当前页-1)*每页显示多少条,每页显示多少条;5.9、查询排序
语法 :order by 字段 asc/descasc: 顺序,正序。数值:递增,字母:自然顺序(a-z)desc: 倒序,反序。数值:递减,字母:自然反序(z-a)5.10、分组查询
SELECT gender,COUNT(*) FROM student GROUP BY gender;5.11、分组查询后筛选
注意: 分组之前条件使用where关键字,分组之前条件使用having关键字SELECT gender,COUNT(*) FROM student WHERE GROUP BY gender HAVING COUNT(*)>2;相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复