|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 chun888 于 2017-9-12 12:52 编辑
环境变量:path:C ---> \Program Files (x86)\MySQL\MySQL Server 5.0\bin;
如果想字段里弄中文,或者识别中文就要改:
my.init 里面的default-character=gbk 和character-set-server=gbk 。数据库也可以右键里面改
*************************************
登陆:mysql -u root -p abc;
名 密码
卸载: 1、停止mysql
2、卸载mysql
3、找到mysql安装目录下的my.ini -->datadir='c:/programdata/mysql/mysqlserver5.5/data/'
①.数据库(DB)文件系统
②.数据库管理系统(DBMS)
SQL:结构化查询语言。
SQL优点:几乎所有重要的数据库管理系统都支持ssql。
SQL的分类:
DDL:数据定义语言 DCL数据控制语言
DML数据操作语言 DQL数据查询语言
--- DDL 用于描述数据库中要存储的现实世界实体语言。即创建数据库和表的结构。
--- DML 数据操作语言,用来定义数据库记录。(数据)
--- DCL 数据控制语言,用来定义访问权限和安全级别。
--- DQL数据查询语言,用来查询记录。(数据)数据库执行DQL语句,不会对数据进行改变,而是让数据库发送结果集给客户端。返回的结果是一张虚拟表。
数据库系统 ==数据库(DB)+数据库管理系统(DBMS)
关键字概念:
①列:字段。 ②行:一条记录(实体)。
*************************************
0、创建数据库
create database 数据库名;
1、查看当前数据库服务器中的所有数据库
show database;
2、删除前面创建的数据库
drop database 数据库名;
3、查看当前使用的数据库
select database();
4、把“数据库”的字符集修改为utf8
alter database 数据库名 character set utf8;
5、查看指定的数据库,并且查看字符集信息内容
show create database 数据库名;
6、切换数据库
use 数据库名;
7、创建表
create table 表名 (字段1 字段类型,字段2 字段类型,字段3 字段类型);
8、查询当前数据库的所有表
show tables;
9、查看表的字段信息
desc 表名;
10、添加列(字段)
alter table 表名 add 列名 列类型;
11、修改数据库
alter table 表名 modify 列名 修改类型;
12、删除只能删除一列
alter table 表名 drop 列名;
13、表名改为user
rename table 表名 to 修改后的名;
14、查询表中的所有数据
select *from 表名;
15、插入操作
insert into 表名(列名1,列名2) values(列值1,列值2);
insert into mo(class_id,class_name) values('2','2');
--注意:列名与列值的类型、个数、顺序要一一对应
可以把列名当做java中的形参把列值当做实参
值不要超出列定义的长度
如果插入空值,清使用null
插入日期用字符一样
16、修改操作
update 表名 set 列名1=列值1,列名2=列值2.... where 列名=值;
[将姓名为‘tom’的员工薪水修改为300元 ---> update emp set salary=300 where name='tom']
17、删除操作
delete from 表名 [where 列名 =值]; **整一行都删除**
注意:删除表中名称为‘tom’的记录 -->delete from emp where name='tom';
删除表中的所有记录 -->delete from emp;
使用truncate删除表中记录 --> truncate table emp;
delete删除表中的数据,表结构还在;删除互殴的数据可找回;
truncate删除是把表直接drop掉,然后在创建一个同样的新表,删除的数据不能找回,执行速度比delete快;
18、查询指定列
select 列1,列2 from 表;
=======================================================================================================
常用的数据类型:
int整型。
double浮点型(例如:double(5,2)表示最多5位,其中必须有2位小数)
char:固定长度字符串类型:char(10) 【不用带双引号】
text:字符串类型
blob:字节类型 【带双引号】
time:时间类型(hh.mm:ss)
varchar:可变长度字符串类型
date:日期类型,格式为yyy-mm-dd
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
条件查询介绍
条件查询就是在查询时给出where子句,在where字句中可以使用如下:
①=、!=、<>、<、<=、>、>=; ②IS NOT NULL; ③in(set);
④is null; ⑤and; ⑥or;
⑦not; ⑧between...and;
⑧的用法:
①select *from 表名 where age>=20 and age<=40;
②select *from 表名 where age between 20 and 40;
①的用法:查询性别非男生的记录:
①select *from stu where gender!='male';
②select *from stu where gender<>='male';
②的用法:查询姓名不为null的学生记录
select *from stu where name is not null;
查询性别为女,并且年龄>=50的记录
①select *from stu
②where gender='female'and age>50;
一样的结果,不一样的是第一条可以添加><= 第二条不可以。
①select *from stu where sid='s_lool' or sid='i';
②select *from stu where sid in('s_lool','i');
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
模糊查询
当想查询姓名中包含a字母的学生时就需要使用模糊查询了。模糊查询需要使用关键字like
通配符:“_”代表任意一个字符 “%”代表任意0~n个字符
‘张%’ 《==》张三四,张三丰,...
‘_张’ 《==》我张,似张,...
语法:where 表名 like ();
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
字段控制查询
字段重复数据
去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sal字段就存在相同的记录。当只查询emp表的sal字段时,那么会出现重复记录,那么想去除重复记录,需要使用‘distinct’
语法: select distinct 列 from 表名;
select distinct 列,列 from 表名;
↓
两列中都相同才会去掉,如有一不相同都不去掉。
注意:任何数值与null相加减结果等于null
题:
查看雇员的月薪8佣金之和
select ifnull(commm,0) from emp;
是 否
给列起别名
select sal+ifnull(comm,0) as 别名 from 表名
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
排序
升 降
order by 列名 asc(默认) desc
①查询所有学生记录,按年龄升序
select *from 表名 order by 列名 asc;
②查询所有雇员,按月新降序,如果月薪相同时,按照编号升序排序。
select *from 表名 order by 列,列 desc;
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
集合函数
和 平均 最大 最小 行数
sum avg max min count
①集合函数是用来做纵向运算的函数;
*代表所有
select count(age) from stu;
②查询相关关键字的顺序
select from where order by
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
分组查询
当前要分组查询时需要使用group by 子句,例如查询每个部门的工资和。这说明要使用部分来分组。
①查询男生人数和女生人数
select *from stu where gender='male' or gender='female';
select *from stu where gender is nut null group by gender;
②查询各部门的人数
select deptno,count(*) from emp group by deptno;
| |
注意:凡和集合函数同时出现的列名,则一定要写在group by 之后。
③查询每个部门的部门编号和每个部门的工资和
select deptno,sum(sal) from emp group by deptno;
④查询每个部门的部门编号以及每个部门的人数
select deptno,count(*) from emp group by deptno;
⑤查询每个部门的部门编号以及每个部门工资大于1500的人数
select deptno,count(*) from emp where sal>1500 group by deptno;
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
having子句
用来作分组后的条件。
-- having 与where的区别:
1、having是在分组后对数据进行过滤。
where是在分组对数据进行过滤。
2、having后面可以使用分组函数(统计函数)
where后面不可以使用分组函数。
where是对分组前记录的条件,如果某行记录没有满足where子句的条件,那么这行记录不会参加分组,而having是对分组后数据的约束。
①查询工资总和大于9000的部门编号以及工资和:
select 字段 ,sum(sal) from 表 group by deptno having sum(sal)>9000;
select 字段,sum(sal);
未看完
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
limit 方言
limit用来限定查询结果的起始行,以及总行数。
select * from 表 limit 0,3 --第一个参数,从第几行查询,第二个参数,查几行。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
数据的完整性
作用:保证用户输入的数据保存到数据库是正确的。
确保数据的完整性= 在创建表时给表中添加约束
完整性的分类:
实体完整性;行
域完整性; 列
引用完整性;
实体完整性
实体:即表中的一行(一条记录)代表一个实体。
实体完整性的作用:标识每一行数据不重复。
约束类型:①主键约束(primary key)、②唯一约束(unique)、③自动增长列(auto_increment)。
-- 主键约束
注意:每个表中要有一个主键。
特点:数据唯一,且不能为null。
例如:
第一种添加方式:
create table student(
id int primary key,
name varchar(50)
);
第二种添加方式,此种方式优势在于,可以创建联合主键
【两个主键,且内容不能相同,但不能理解成两个主键,相当于1+1=联合主键】
create table student(
classid INT,
id int,
name varchar(50),
primary key(id,classid)
);
第三种添加方式:
create table student(
id int,
name varchar(50)
);
alter table student add primary key(id);
随起
-- 唯一约束
唯一约束:不能重复,重复报错,可以空值。跟主键相同不能重复却不能像主键那样。
create table student(
id int primary key,
name varchar(50) unique
);
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
自动增长列 Mysql(auto_increment)
sqlserver数据库(identity) oracle数据库(sequence)
给主键添加自动增长的数值,列只能是整数类型
create table student(
id int primary key auto_increment,
name varchar(50) unique
); |
|