`

MySQL总结

 
阅读更多
1.查看大的数据库下面有什么小的数据库
show databases;
2.选择一个小的数据库,即可使用
	use+库名;
3.查询系统当前时间
	select now();
4.查看当前数据库版本
	select version();
5.查看当前用户
	select user();
6.在小数据库中创建一张表
	create table 表名(字段名称 字段属性[not null][,null][,default value]
[auto_incerment]<-自增1 [index]<-索引)

7.数据库中的内容
	1.字段属性
	1.1整型
	tinyint		-----在有负数时:-128至127
			-----在有正数时:0至255
	(通常用来修饰:年纪,IP)
	
	int		-----在有负数时:-21亿至21亿
			-----在有正数时:0至40亿

	bigint		-----很大很大

	1.2浮点型	
	float		-----
	double		-----
	decimal(m,d)	-----m:代表几位数  d:小数点后面有几位数
	
	1.3字符串
	char		-----定长字符串
	varchar()	-----变长字符串
	text		-----文本型(65535个字)
	longtext	-----长文本
	enum(值1,值2)	-----枚举类型



	enum("男","女")

	1.4日期类型
	date		-----日期
	datetime	-----日期时间("")


create table emp(empno int(4),ename varchar(20),job varchar(20),mgr int(4),hiredate date,sal decimal(5,1),comm decimal(5,1),deptno tinyint);

INSERT INTO emp VALUES(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20);
INSERT INTO emp VALUES(7499,'ALLEN','SALESMAN',7698,'1981-2-20',1600,300,30);
INSERT INTO emp VALUES(7521,'WARD','SALESMAN',7698,'1981-2-22',1250,500,30);
INSERT INTO emp VALUES(7566,'JONES','MANAGER',7839,'1981-4-2',2975,NULL,20);
INSERT INTO emp VALUES(7654,'MARTIN','SALESMAN',7698,'1981-9-28',1250,1400,30);
INSERT INTO emp VALUES(7698,'BLAKE','MANAGER',7839,'1981-5-1',2850,NULL,30);
INSERT INTO emp VALUES(7782,'CLARK','MANAGER',7839,'1981-6-9',2450,NULL,10);
INSERT INTO emp VALUES(7788,'SCOTT','ANALYST',7566,'1987-4-19',3000,NULL,20);
INSERT INTO emp VALUES(7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10);
INSERT INTO emp VALUES(7844,'TURNER','SALESMAN',7698,'1981-9-8',1500,0,30);
INSERT INTO emp VALUES(7876,'ADAMS','CLERK',7788,'1987-5-23',1100,NULL,20);
INSERT INTO emp VALUES(7900,'JAMES','CLERK',7698,'1981-12-3',950,NULL,30);
INSERT INTO emp VALUES(7902,'FORD','ANALYST',7566,'1981-12-3',3000,NULL,20);
INSERT INTO emp VALUES(7934,'MILLER','CLERK',7782,'1982-1-23',1300,NULL,10);


CREATE TABLE dept(deptno int(2) ,dname varchar(14) ,loc varchar(13) );

INSERT INTO dept VALUES
    (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES 
   (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES
    (30,'SALES','CHICAGO');
INSERT INTO dept VALUES
    (40,'OPERATIONS','BOSTON');



create table user(id int(4) auto_increment primary key,name varchar(20),age tinyint,sex enum("男","女"),sal decimal(6,1));

insert into user(name,age,sex,sal) values("吴东恒",27,"男",4000.2);
insert into user(name,age,sex,sal) values("李威",24,"女",4000.1);
insert into user(name,age,sex,sal) values("邵燕",24,"女",4000.3);


修改表的结构
添加字段
alter table 表名 add 字段名 字段的类型

修改字段
alter table 表名 change 旧的字段名 新字段名 新字段的属性

删除一个字段
alter table 表名 drop 字段名称

对表的名字进行修改
alter table 表名 raname 新的名字

删除一张表
drop table 表名

注意:在实际的项目中不允许随便对表的结构进行修改。


mySQL数据库中的sql语句

1.修改记录
update 表名 set 字段=值 where 限制条件

2.删除记录
delete from 表名 where 限制条件

3.增加记录(插入数据)
insert into 表名 velues()

4.查询记录
----------唯一不同的查询是分页查询(请到网上自学MYSQL分页查询)

连接查询(以一个共有字段,求两张及其以上多张表的并集,主要是把多张表关联起来)
内连接(返回两张关联表,满足连接条件的记录) 外连接(左,右,全连接)

查询员工的名字和所在部门的名字:
select e.ename,e.deptno
from emp e,dept d
where e.deptno=d.deptno

查询没有部门的员工
select e.ename,d.dname from emp e left outer join dept d on e.deptno=d.deptno

select deptno from emp e right outer join dept d on e.deptno=d.deptno

SELECT e.ename,d.dname
FROM emp e
LEFT OUTER JOIN dept d
ON e.deptno=d.deptno;


分页查询
select * form emps order by empno
limit 11,10从11开始往后数10


索引(数据库表的目录):快速查找记录。
索引形式:在数据库中是以文件的形式存在。
特性:索引文件与表的记录是同步更新的。

四类索引:
1.普通索引(MUL):是最基本的索引,在一张表中可以添加多个普通索引。
1)在创建表的时候添加索引。
create table test001(id int(4) auto_increment primary key,name varchar(20),pwd varchar(20),index(name));

2)对已经存在的表添加普通索引
alter table 表名 add index(字段名);

2.唯一索引:该字段的值不能重复,在一张表中可以添加多个唯一索引。
1)在创建表的时候。
create table test003(id int(4) auto_increment primary key,phone varchar(20),name varchar(20),unique key(phone));

2)对已经存在的表添加唯一索引
alter table 表名 add unique key(字段名);


3.主索引(PRI):primary key 主键。





外键:是外来的主键

外键所属
	级联删除:on delete cascade
	级联修改:on update cascade
创建一张用户表
	create table user001(uid int(4) auto_increment primary key,name varchar(20),age int(3))engine=innodb

insert into user001(name,age) values('lw',24);
insert into user001(name,age) values('lt',26);

创建一张订单表:
create table order001(oid int(4) auto_increment primary key,oname varchar(20),money int(4),id int(4),foreign key uid(id) references user001(uid) on delete cascade);
insert into order001(oname,money,id) values("维多利亚的秘密",5000,1);
insert into order001(oname,money,id) values("重建雄风",5000,2);

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics