mysql简单介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
内容目录:
1.连接mysql的三种方法
2.基本的sql语句
3.对数据表进行操作
4.数据类型
5.属性与约束
6.更改表结构
练习
7.表数据的增 删 改 查
命令介绍
1.连接mysql的三种方法
- 在命令行内输入:
mysql -u root -p
回车,然后输入密码 ,回车即可进入 - 在命令行内输入:
mysql -h localhost -P 3306 -u root -p
回车,然后输入密码,回车运行即可进入。 - (windows)可以找开始菜单,在mysql文件夹中找 MySQL,Command Line Client 启动,然后输入密码。
2.基本的sql语句(sql语句以分号结尾)(类比于常见的 excel 创建写入与存储)
- 显示所有的数据库文件(类似打开excel文件目录)
show databases;
- 创建数据库 (类似创建excel文件)
create database test;
- 使用某个数据库(相当于打开一个excel文件)
use test;
- 查看数据表(相当于看看有哪些 sheet)
show tables;
- 删除库(相当于删除excel)
drop database test;
3.对数据表进行操作
- 创建表(相当于我们在 excel 中新建一个sheet,然后sheet的首行规定每一列该填什么,如姓名,年龄,性别)
create table [if not exists] 表名称 (
字段名1 列类型 [属性] [约束] [注释],
字段名2 列类型 [属性] [约束] [注释],
......
字段名n 列类型 [属性] [约束] [注释]
);
- 删除表(相当于在excel 中删除一个存在的sheet)
drop table (表名称);
- 查看表结构
desc (表名称);
- 查看数据表
show tables;
4.数据类型(一般用在列类型上)
- 数值类型
整型: 常用的有 int bigint
浮点型:常用的有 float double
- 字符串类型(m 是个长度数值)
char(m)
varchar(m) varchar(20) 表示20个字符
text
longtext :存个小说
- 日期类型
date 2019-8-3
datetime 2019-8-3 10:05:30
timestamp 时间戳
time 10:05:30
5.属性与约束
- null 空
- not null 不为空
- default 默认值如: 上面的 age : age int default 18,
- unique key 唯一 设置 某个列 的值都是唯一的,也就是没用重复,如 身份证号,一般是唯一的
- primary key : 主键唯一标示(自带唯一属性,not null属性)一个表中必须有的,一般都是数字自增
- auto_increment: 自增长 必须给主键设置 ,int ,它 的数值是不会回退的
- foreign key : 外键 减少冗余,用来与其他表连接。
语法: constraint 你给外键取的名字 foreign key (你想引用到外键的列名称) references 参考表的表名(列名称且这个列名称是有主键属性)
6.更改表结构
-
更改表名称
语法:alter table (旧表名) rename as (新表名)
如:-> alter table class1 rename as classOne; -
添加字段
语法:alter table (表名称) add (字段名) (列类型)[属性][约束]
如:-> alter table class2 add phone varchar(20); -
删除字段
语法:alter table (表名称) drop (字段名) -
更改字段名称
语法:alter table (表名) change (旧字段名) (新字段名)(列类型)[属性][约束]
如:-> alter table class2 change name stu_name varchar(20) not null; -
更改属性:
语法: alter table (表名称) modity (字段名) ( 列类型) [属性][约束]
如:-> alter table class2 modify stu_name varchar(50) not null; -
增加外键:
语法: alter table (你要增加外键的表名) add constraint (你给外键取的名字)( foreign key (你想引用到外键的列名称) references (参考表的表名)(列名称且这个列名称是有主键属性)
练习
创建库 goods
使用goods库
创建商品种类表 commoditytype
创建商品表 commodity
c_id 主键 自增长
c_name 50个字的字符串 不为空
c_madein 50个字的字符串 不为空
c_type ,整型,外键关联到 商品表的 ct_id
c_inprice ,整型 不为空
c_outprice,整型 不为空
c_num, 整数 默认 100
create table commoditytype(
ct_id int primary key auto_increment,
ct_name varchar(50) not null
)default charset=utf8;
create table commodity(
c_id int primary key auto_increment,
c_name varchar(50) not null,
c_madein varchar(50) not null,
c_type int,
constraint fk_1 foreign key (c_type) references commoditytype(ct_id),
c_inprice int not null,
c_outprice int not null,
c_num int default 100
)default charset=utf8;
7.表数据的增 删 改 查
7.1增 插入数据
语法:insert into [table_name] ([column],…) values(“name”,…);
例子:
insert into student(name,age,NCEE_grade,register_date) values("刘备",20,400,"2018-9-1");
insert into student(name,age,NCEE_grade,register_date) values("关羽",19,380,"2018-8-31");
insert into student(name,age,NCEE_grade,register_date) values("张飞",18,360,"2018-8-30");
7.2.删 删除行数据
语法 :delete from [table_name] where [column_name] = " "
例子:
1.删除叫刘备的小朋友 delete from student where name = "刘备";
2.删除age大于等于19的小朋友 delete from student where age>=19;
3.删除登记日期在9月之后的 delete from student where date like "2018-09%";
7.3.改 更改数据值
格式:update [table_name] set [columns] = " ",[columns] = " " where /
例子:将刘备小朋友的高考成绩改成390
update student set NCEE_grade = 390 where name = "刘备";
7.4.查 按照统计要求查询数据
按照NCEE_grade降序展示select * from student order by NCEE_grade desc;
分组统计每一个column出现的次数
格式:select [column],count(*) (as [name])from student group by [column];
select register_date,count(*) as date_num from student group by register_date;
根据column1的分组 分别计算每一组的column2的总值
格式:select [column1],sum(column2) from student group by [column1] ;
select name,sum(NCEE_grade) from student group by name ;
根据column1的分组 分别计算每一组的column2的总值 并且 统计总人数格式:select coalesce(column1,“total_num”),sum(column2) as [name] from student group by [column1] with rollup;
select coalesce(name,"total_grade"),sum(NCEE_grade) as total from student group by name with rollup