一、启动服务
1. 图标启动
2. 进程服务启动:win+r ,输入services.msc
二、连接mysql
1. win+r ,输入cmd,在命令行内输入:mysql -u root -p (u 是用户 p 是输入密码)
2. win+r ,输入cmd,输入:mysql -h localhost -P 3306 -u root -p(-h homename-->localhost, -p port-->3306, -u username-->root, -p password)
3. (window)开始菜单,mysql文件夹,找MySQL Command Line Client 启动,输入密码
三、基本的sql语句(sql语句以分号结尾才能运行)
1. 对数据库的操作
(类比于,常见的excel创建写入和存储)
- 显示所有的数据库文件(类比于打开文件夹看到所有的Excel文件)
语法:show databases;> show databases;
- 创建数据库(当成创建Excel)
语法:create database 数据库名称;> create database test1;
- 使用数据库(当成打开一个Excel)
语法:use 数据库名称;> use test1;
- 查看数据表(相当于看看Excel中有哪些表,下面的sheet)
语法:show tables;> show tables;
- 删除数据库(当成删除Excel)
语法:drop database 数据库名称;> drop database test1;
2. 对数据库中表的操作
-
创建表
(相当于在Excel中新建一个sheet,然后在sheet的首行规定每一列该填什么,如:学号,姓名,年龄,性别)下面语法中[]和里面的内容可以不写
语法:create table [if not exists] 表名称(
字段名1 列类型 [属性] [约束] [注释] ,
字段名2 列类型 [属性] [约束] [注释] ,
…
字段名n 列类型 [属性] [约束] [注释]
)default charset=’’;
最后一行不需要在后面加逗号,结尾注意加分号 -
删除表(相当于删除一个存在的sheet)
语法:drop table 表名称; -
列类型种类(数据类型)
3.1 数值类型:整型:int、bigint…
浮点型:float、double…
3.2 字符串类型:char(m) //m是个长度数值
varchar(m) //eg:varchar(20)表示20个字符,姓名,年龄一般用这个
text //存文本
longtext //长文本,可以存一本小说
3.3 日期类型: date 2019-8-3
datetime 2019-8-3 10:05:30
timestamp 时间戳
time 10;05:30 -
实例1:创建班级表class1,id,姓名,年龄,性别
#创建1班 > create table class1( id int auto_increment primary key, name varchar(20), age int, sex char(5) )default charset=utf8; #auto_increment 表示自增长,随着行的增加自己自加,(是一个约束条件)
-
实例2:创建班级表class2,id,学号、姓名,年龄,性别、省份
> create table class2( id int primary key auto_increment, stu_num int(11) unique not null, name varchar(20) not null, age int default 18, sex char(6), province int, constraint fk_1 foreign key (province) references province(p_id) )default charset=utf8; #结尾设置编码,一定不要忘了(没有编码设置,中文会出乱码)
-
涉及到数据关联省份,需要先创建省份表,才能在下面引用省份的id,产生关联
> create table province( p_id int primary key auto_increment, p_name varchar(20) )default charset=utf8;
-
属性与约束
7.1、null: 空
7.2、not null:不为空
7.3、default:默认值 //eg:上面的 age int default 18, 意思就是,如果不填年龄,默认就是18岁
7.4、unique key:唯一 //设置某个列的值是唯一的,每一个内容都是不同的(比如输入身份证号,就没有相同的,可以设置为唯一)
7.5、primary key:主键(唯一标志,自带唯一属性和not null属性,是一个表中必须有的,一般都是数字自增)
7.6、auto_increment:自增长(必须给主键设置,而且必须是int型的,它的数值是不会回退的:对数据的存储是很有用的)
7.7、foreign key:外键(用来与其他表连接)
外键的语法:constraint 给外键起个名字 foreign key (你想引用外键的列名称) references 参考表的表名(列名称,这个列名称必须另一张表的主键) -
查看表的结构
语法:desc 表名称 -
更改表名称
语法:alter table 旧表名 rename as 新表名> alter table class1 rename as classOne;
-
添加字段
语法:alter table 表名称 add 字段名 列类型[属性][约束]#给class2添加电话列 > alter table class2 add phone varchar(20);
-
删除字段
语法:alter table 表名称 drop 字段名 -
更改字段名
语法:alter table 表名称 change 旧字段名 新字段名 列类型[属性][约束]#将name改为stu_name > alter table class2 change name stu_name varchar(20) not null;
-
更改属性
语法:alter table 表名称 modify 字段名 列类型 [属性] [约束]#将学生姓名的varchar(20)改为varchar(50) > alter table class2 modify stu_name varchar(50) not null;
-
增加外键
语法:alter table 你要增加外键的表名称 constraint 给外键起个名字 foreign key (你想引用外键的列名称) references 参考表的表名(列名称,这个列名称必须另一张表的主键) -
实例
操作要求:
1.创建数据库 goods
2.使用goods库
3.创建商品种类表 commoditytype ,主键 ct_id,ct_name
4.创建商品表 commodity
* c_id 主键 自增长
* c_name 50个字的字符串长度 不为空
* c_madein 50个字的字符串长度 不为空
* c_type 整型,外键关联到商品表的ct_id
* c_inprice 整型,不为空
* c_outprice 整型,不为空
* c_num 整型 ,默认为100
5.创建客户表
* cu_id 主键 自增
* cu_name 50个字 不为空
* cu_phone 20个字
* cu_sex int 默认男或者女
* cu_address 100个字符 不为空
6.创建订单表
* o_id 主键,自增
* o_cuid 整型
* o_cid 整型
* o_num 整型
操作代码:> create database goods; > use goods; > create table commoditytype( ct_id int primary key auto_increment, ct_name varchar(20) )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, c_inprice int not null, c_outprice int not null, c_num int default 100, constraint fk_2 foreign key (c_type) references commoditytype(ct_id) )default charset=utf8;
> create table customer( cu_id int primary key auto_increment, cu_name varchar(50) not null, cu_phone varchar(20), cu_sex varchar(5) default '男', cu_address varchar(100) not null )default charset=utf8;
> create table orders( o_id int primary key auto_increment, o_cuid int, o_cid int, o_num int )default charset=utf8;
未完~~~~^_^