mysql基础操作

1. 基础操作

MySQL语句执行顺序
mysql基础操作_第1张图片

1.1 启动服务

a.手动启动
我的电脑->右键->管理->服务->mysql->右键启动/启动

b.命令方式
管理员模式下运行cmd,执行如下操作:

net start mysql --启动服务
net stop mysql --关闭服务

1.2 命令连接数据库(客户端连接数据库)

运行cmd,执行如下操作:

mysql -h 主机名 -u用户名 -p密码

mysql基础操作_第2张图片

退出数据库命令:

quit;
exit;

1.3 防止乱码

set names gbk;

注意:为了防止乱码,所以登录成功后,就需要设置字符集。登录成功后,以后的语句都必须添加分号
在这里插入图片描述

1.4 查看所有的数据库

show databases;

mysql基础操作_第3张图片

1.5 创建数据库

create database 数据库名字 charset utf8 [collate 校对规则名];

字符集名类似这些:utf8,gbk,gb2312,big5,ascii等。推荐用utf8.

校对规则名:通常都不用写,而是使用所设定字符集的默认校对规则。说明:在定义语法结构的时候,如果加有中括号,代表的意思可以不写
mysql基础操作_第4张图片

1.6 查看数据库创建信息

show create database 数据库名;

mysql基础操作_第5张图片

1.7 删除数据库

drop database 数据库名;

mysql基础操作_第6张图片

1.8 选择某个数据库

一个项目中,具体进行有关数据操作(增删改查)之前,都需要先“选择/进入”该数据库。

use 数据库名;

在这里插入图片描述

1.9 显示所有表

show tables;

mysql基础操作_第7张图片

1.10 创建表

create table 表名(字段1,字段2,字段3.....字段n) [charset=字符集][type=表类型];

例如: create table student(id int,name varchar(50),sex char(2),age int);

其中:

​ a.字段的形式为:字段名 字段类型 [字段属性…]

​ b.字符集包括:utf ,gbk,gb2312,big5等等,默认是数据库的字符集,可以不写

​ c.表类型包括:InnoDB,MyIsam,BDB等,默认是InnoDB,可以不写

注意事项:

​ a.表字段名不可以是中文

​ b.常用数据类型有:

中文 关键字 其他
字符串 varchar,char,text name varchar(50),字符串类型必须写上长度
数字 int age int;整数可以不用写长度
布尔 bit 0=false,1=true
时间 datetime,date birthday datetime;不用写长度
浮点 float money float;不用写长度

mysql基础操作_第8张图片

1.11 查看表结构

desc 表名;

所谓数据表的结构,其实就是一个表的每个字段的具体信息
mysql基础操作_第9张图片

1.12 查看表的创建语句

show create table 表名;

mysql基础操作_第10张图片

1.13 删除表

drop table 表名;

mysql基础操作_第11张图片

1.14 字段操作

1.14.1 添加字段

alter table 表名 add 字段名 字段类型 [字段属性][after某字段或first];

其中:
after某字段名:意思是,新加的字段,放在该现有字段的后面
first:表示新加的字段放在第一位(最前面)

例如:
mysql基础操作_第12张图片在这里插入图片描述
mysql基础操作_第13张图片
mysql基础操作_第14张图片

1.14.2 修改字段

alter table 表名 change 旧字段名 新字段名 字段类型 [字段属性];

mysql基础操作_第15张图片
如果不修改字段名,而只是修改字段的其他信息,则可以使用

alter table 表名 modify 要修改的字段名 字段类型 [字段属性];

mysql基础操作_第16张图片

1.14.3 删除字段

alter table 表名 drop 要删除的字段; 

注意: MySql不支持下面这种批量删除
alter table 表名 drop COLUMN 要删除的字段1,drop COLUMN 要删除的字段2;
MySql不支持删除表中的全部字段,可用drop table 表名代替

mysql基础操作_第17张图片

1.14.4 修改表名

alter table 表名 rename 新的表名;

mysql基础操作_第18张图片

1.14.5 修改字符集

alter table  表名 charset="新的字符集";

mysql基础操作_第19张图片

2. 数据操作

数据都是存储在数据表中

数据的操作基本有4种,增(插入insert),删(删除delete),改(修改update),查(查询select).

即所谓的CRUD操作:create(创建),retrieve(获取),update(更新),delete(删除)

2.1 插入数据

insert into 表名(字段1,字段2....) values(数据1,数据2....);

mysql基础操作_第20张图片

--普通的,完整的添加数据
insert into student(id,name,sex,telphone,age) values(1,'张三','男','123455',18);
--查询表中的所有数据
select * from 表名;
--特殊的添加数据
 insert into student values(2,'里斯','男','123455',19);--添加一条完整的数据
 insert into student values(3,'王五','男','123456',19),(4,'小张','女','999',20);--一次性插入多条数据
 insert into student select 5,'小李','女','999',21;--新增一条数据
 insert into student select 6,'小周','女','888',22 union select 7 ,'小王','男','123',23;--一次性插入多条数据
--会出错的情况
 insert into student(id,name,sex,telphone,age) values(1,'张三','男','123455','十八');--age字段是数字类型,而插入的值却是字符串类型,类型不匹配
 insert into student(id,name,sex,telphone,age) values(1,'张三','男','123455');--插入罗列的字段和值的数量是不匹配的
 insert into student values(3,'王五','男','123455');--值和字段数量不匹配

注意事项:

1.字符串和时间类型在使用的时候,是必须添加单引号,不要加成双引号了
2.在插入数据的时候,需要一一匹配,匹配包括数据类型,数量,顺序都必须一一匹配
3.在表后罗列字段的时候,是可以不写字段的。但是,如果不罗列字段,那么你的值就必须是这张表所有字段的值。比如表有10个字段,那么就的意义罗列10个值,且一一对应

2.2 查询数据

select 字段 from 表 [where 条件];

案例:

--查询不重复的列
select distinct depart from teacher;
--统计满足条件的数据行数
select count(*) from student where class='95031';
--查询Score表中的最高分的学生学号和课程号。
select * from score order by degree desc limit 0,1;--排序之后,读取数据是从索引0开始,截取第0-1个,但是不包含1
--查询所有的学生信息
 select id,name,sex,telphone,age from student;--查询出所有的学生信息
 select * from student;--查询出所有的学生信息
 select name,telphone from student;--只查出用户名和电话号码
--查询id=1的学生信息
 select * from student where id=1;
--查询所有的男学生
 select * from student where sex='男';
--查询年龄大于18的学生信息
 select * from student where age>18;
--查询性别为'男'且年龄大于20的学生
 select * from student where sex='男' and age>20;
--查询姓名为张三和里斯的学生
 select * from student where name='张三' or name='里斯';
 select * from student where name in('张三','里斯');
--查询年龄在19-23之间,包含19和23
 select * from student where age>=19 and age<=23;
 select * from student where age between 19 and 23;
--查询不是张三也不是里斯的所有学生
 select * from student where name<>'张三' and name<>'里斯';
 select * from student where name not in('张三','里斯');
--模糊查询,like
 select * from student where name like '小';--where name='小'
 select * from student where name like '小%';--name以小开头的所有学生信息
 select * from student where name like '%小';--name以小结尾的所有学生信息
 select * from student where name like '%小%';--name包含小的所有的学生信息
 select * from student where name like '%小%大%';--name 既包含小有包含大的所有学生信息
--查询所有以小开头的学生信息
 select * from student where name like '小%';
--排序查询
 select * from student order by id;--根据id进行查询,order by 默认是顺序,asc
 select * from student order by id asc;
 select * from student order by id desc;--根据id倒序查询
 --聚合查询
 count(),sum(),avg(),max(),min()

2.3 删除数据

delete from 表 [where 条件];

说明:
A. 删除数据指的是删除表中的某些行,比如原来有10行,可以将其中的3行删除,则剩下7行

B. where条件表示删除数据所应满足的条件,含义跟select中的一样。

C. where 条件可以不写,如果不写,则会删除所有数据——通常都不会这么用

案例:

--删除id为7的数据
 delete from student where id=7;
--删除性别为男,且年龄小于20的学生信息
 delete from student where sex='男' and age<20;
 --删除表中第一条数据
 delete from student limit 1;

2.4 修改数据

update 表名 set 字段1=值1,字段2=值2....[where 条件]

说明:
A. 修改数据指的是修改表的某些行的某些字段

B. where条件表示修改数据所应满足的条件,含义跟select中的一样

C. where条件可以不写,如果不写,则会修改所有数据——通常都不会这么用

案例:

--修改id为2的姓名为张三,电话号码为123456
update student set name='张三',telphone='123456' where id=2;

3. 练习1

--建库
 create database school charset utf8;
--建学生表
 create table student (
 	sno varchar(3) not null,
 	sname varchar(4) not null,
 	ssex varchar(2) not null,
 	sbirthday datetime,
 	class varchar(5)
 );
--添加学生数据
 insert into student values('108','曾华','男','1977-9-1','95033');
 insert into student values('105','匡明','男','1975-10-2','95031'),('107','王丽','女','1976-1-23','95033'),('101','李军','男','1976-2-20','95033'),('109','王芳','女','1975-2-10','95031'),('103','陆君','男','1974-6-3','95031');
--创建教师表
 create table teacher (tno varchar(3) not null,tname varchar(4) not null,tsex varchar(2

你可能感兴趣的:(Node,mysql,mysql,数据库)