MySql(一入门)
2016-08-03 21:58
155 查看
1、MySQL概述
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。数据库保存数据特点:
1、数据共享
2、减少冗余
3、集中控制
4、安全性和可靠性
5、故障恢复
常用数据库:
1、MySQL:目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统
2、SQL Server:SQL Server是由微软开发的数据库管理系统,它只能在Window平台上
3.Oracle:Oracle在数据库领域一直处于领先地位。 Oracle数据库成为世界上使用最广泛的关系数据系统之一。
2、SQL语句的分类
1、DDL (数据定义语言)数据定义语言 - Data Definition Language
用来定义数据库的对象,如数据表、视图、索引等
2、DML (数据操纵语言)
数据处理语言 - Data Manipulation Language
在数据库表中更新,增加和删除记录
如 update, insert, delete
3、DCL (数据控制语言)
数据控制语言 – Data Control Language
指用于设置用户权限和控制事务语句
如grant,revoke,if…else,while,begin transaction
4、DQL (数据查询语言)
数据查询语言 – Data Query Language
select
2、常用语句
数据库连接:mysql -u root -p1、创建数据库
create database 库名称 [character set 码表名称 collate 字符校对集名称]
2、显示当前创建的数据库
show databases
3、删除数据库
drop database 数据库名称;
3、数据库中的数据类型
4、与表相关的语句
1、进入某个数据库use database;
2、创建表
create table t_student( name varchar(20), id varchar(30), age int, data datetime );
3、查看当前库中有哪些表
show tables;
4、查看表的结构
desc 表名;
5、删除表
drop table 表名;
6、添加一列
alter table 表名 add 列名 类型;
6、修改列的类型
alter table 表名 modify 列名 类型;
修改列的名称
alter table 表名 change 旧列名 新列名 类型;
7、删除某列
alter table 表名 drop 列名;
8、修改表的名称
rename table 旧表名 to 新名;
5、完整性约束
1、非空约束(not null):指定非空约束的列2、唯一约束(unique):该列的内容在表中值唯一
3、主键约束(primary key):该列的唯一标识符
create table t_teacher( name varchar(20) primary key, id varchar(30) unique, age int not null, class varchar(20) not null );
6、主键自动增长
主键必须是数字,并且自动增长。create table t_user( id int primary key auto_increment, password varchar(30) not null, age int not null, birthday datetime not null, hiredate timestamp not null, number int unique );
7、增删改查
创建数据库student,表t_studentcreate table t_sutdent( id int primary key auto_increment, name varchar(20) not null, number varchar(30) not null )
1、插入
insert into 表名[(列名1,列名2…)] values (值1,值2…);INSERT INTO t_student(NAME,number) VALUES ('tom',"10001"); INSERT INTO t_student(NAME,number) VALUES ('tom2',"10002"); INSERT INTO t_student(NAME,number) VALUES ('tom3',"10003"); INSERT INTO t_student(NAME,number) VALUES ('tom4',"10004");
2、修改
update 表名 set 列名1 = 值 , 列名2 = 值 ….[where 条件1,条件2…]UPDATE t_student SET NAME='tom1' WHERE id=1;
3、删除
删除某个记录delete from 表名 where 条件
DELETE FROM t_student WHERE id=4;
删除表中所有记录
DELETE FROM t_student;
DELETE 删除 和 TRUNCATE删除(了解) 两者有什么区别?
delete 是逐行标记删除. TRUNCATE 是将整张表包括表结构
delete DML语句。 TRUNCATE DDL语句
delete 删除的记录可以被恢复,TRUNCATE 不能回复
delete 不释放空间,TRUNCATE 释放空间
TRUNCATE 会提交事务
4、查询
1、查询所有
select * from 表名;SELECT * FROM t_student;
2、条件查询语句
=、!=、<>、<、<=、>、>=;BETWEEN…AND;
IN(SET);
IS NULL;
AND; &&
OR; ||
NOT; !
1、找出年龄小于20,并且计算机专业的
select * from t_student where age=19 and class='计算机';
2、查询id为1,2的记录;
SELECT * FROM t_student WHERE id=1 OR id=2;
3、查询姓名为null的记录;
SELECT * FROM t_student WHERE NAME IS NULL;
4、模糊查询
where 字段 like ‘表达式’;
% 通配 通配任意个字符.
_ 通配 通配单个字符.
说明: LIKE 条件后 根模糊查询表达式, “_”= 代表一个任意字符
查询班级中有 计
SELECT * FROM t_student WHERE class LIKE '计%'
5、去重
SELECT DISTINCT class FROM t_student;
6、 分组查询
当需要分组查询时需要使用GROUP BY子句
查询每个部门的部门编号和每个部门的工资和
select deptno,sum(sal) from emp group by deptno;
7、LIMIT用来做分页
查询5行记录,起始行从0开始
select * from emp limit 0,5;
查询5条记录,从第3个开始
select * from emp limit 3,5;