MySQL数据库操作语句(cmd环境运行)

时间:2023-03-09 16:27:21
MySQL数据库操作语句(cmd环境运行)

一.开启MySQL服务器

1,  通过windows提供的服务管理器来完成

windows键+R    输入:  services.msc

2.在本地服务中打开其服务

3.在DOC命令行下

 net stop mysql
net start mysql

4.利用bin目录的mysqld来开启

 mysqld --defaults-file="G:/amp/mysql/my.ini"

二.客户端连接服务器

 mysql -uroot -p

登录数据库之后

 # 告诉MySQL服务器,当前客户端使用的是gbk编码
set names gbk;

操作数据库的三步曲(数据库的初始化操作):

1,  连接数据库

2,  设置默认的字符集

3,  选择默认的数据库

注意:

选择了默认的数据库,只会影响默认的操作,一样可以操作其他的数据库!

三.MySQL的帮助命令

帮助命令里面的命令都可以用' \ ' 加 首字母

 help
\h

四.MySQL注释符

单行注释:

  # 注释内容
-- 注释内容,这里的—与注释内容之间必须有一个空格!

多行注释

 /*  注释内容 */

五.数据库操作(DDL)

DDL

DDLData Definition Language,数据定义语言

主要是用来定义和维护数据库的各自操作对象(比如库、表、视图等),也可以说操作的层次是在数据库的库和表的逻辑结构和存储结构上面,并没有对表中的实际的数据进行增删改查等操作!

主要的关键字有:create、drop、alter、show

DML

DMLData Manipulation Language,数据操作语言

主要就是对表中的记录进行增删改查的操作!

其中“查询”部分,又叫做DQL(Data Query Language)!

主要的关键字:insert、delete、update、select

DCL

DCLData Control Language,数据控制语言

主要是对数据库进行一些统一的管理和控制,比如并发控制、存取控制、安全控制等,具体的操作有:权限管理,数据库的备份与恢复等!

 # 创建数据库(增 DDL)
create database 数据库名称[数据库选项];
create database php2017;
-- 特殊字符(用标识限定符反引号包裹 `)
create database `select`;
create database `2017`;
 # 查看当前有那些数据库(DDL)
show databases;
 -- 查看数据库的创建语句(DDL)
show create database 数据库名;
show create database php2017;
 -- 删除数据库(DLL)
drop database 数据库名称;
drop database php2017;
 -- 修改数据库(改 DDL)
/*
注意:数据库的名称不可通过sql命令直接修改
以前有一个rename语法可以修改库名的,但是有bug 如果要修改库名,怎么办?
有两种方式:
a.直接修改数据库的目录名,但是要慎重,因为有时候不是所有的数据库下的表都放在同一个地方!
b.先把当前数据库下的数据表导出,创建一个新的数据库再导入之前导出的数据表,最后再删除之前的数据库
*/ alter database 库名 新的库选项信息;
alter database php2017 default charset gbk;

六.数据表操作(DDL)

 -- 显示指定数据库(DDL)
select * from mysql.user;
-- 选择默认操作数据库
use 库名;
use php2017;  
  -- 创建数据表(DDL)
# 表选项:规定表的默认字符集和存储引擎
create table 表名(字段1 字段类型1,字段2 字段类型2, ...)[表选项];
create table student(
   id int() primary key auto_increment,
name varchar(),
age tinyint,
score float
);
 -- 查看数据表(DDL)
show tables;
-- 查看表的创建语句
show create table 表名;
show create student;
-- 为了让返回语句更有条理
show create student\G; -- 查看表结构
describe 表名;
desc 表名;
-- 删除数据表(DDL)
drop table 表名;
drop table student;
-- 删除的比较完整的语法形式
drop table if exists 表名;
drop table if exists student; -- 类似的语法
create database if not exists 库名;
drop database if not exists 库名; create table if not exists 表名;
drop table if exists 表名; create table if not exists student(
name varchar(20),
age tinyint,
score float
);
-- 修改数据表(DDL)
/*
表中有哪些地方可以修改?
表名,列定义(增加一列、删除一列,列名、列类型、修改列排序),表选项 一个技巧:
尽管修改数据表的关键字有很多,但是基本上可以分成两大部分:
第一部分:上级命令,alter table 表名
第二部分:下级命令,加上需要使用的关键字,比如:
改名(rename)
增加(add)
删除(drop)
重命名(change)
修改(modify)
*/ -- 修改表名
alter table 表名 rename to 新表名;
alter table 表名1 to 新表名1, 表名2 to 新表名2 to 新表名2; -- rename 还能将一个数据库的表移动到另一个数据库下
rename table stu1 to test.stu1; -- 修改列定义 -- 增加一列(first|after 是移动位置,默认在最后一位)
alter table 表名 add 新字段名 字段类型 [first | after 字段名]; -- 删除一列
alter table 表名 drop 字段名; -- 修改字段类型
alter table 表名 modify 字段名 新的字段类型;
alter table stu1 modify name varchar(30);
 alter table xiaoshou modify id int(11)  auto_increment;//修改主键自增 -- 重命名字段(字段类型可以保留原样或者修改)
alter table 表名 change 原字段名 新字段名 字段类型 [frist | after 字段名];
alter table stu1 change name stu_name varchar(20) after stu_id; -- 修改表选项
alter table 表名 新的表选项信息
alter table stu1 default charset gbk;

七.数据操作(DML)

-- 插入数据(DML)
insert into 表名(字段列表) values(值列表);
insert into stu1(stu_name, stu_id, score) values('鸣人', 1701, 98); -- 插入多条数据
insert into stu1 values
(1702,'佐助',2345,22,90),
(1703,'天天',2445,25,99),
(1704,'小樱',1445,26,80); -- 或者只是插入多条部分数据
insert into stu1(stu_name, stu_id, score) values
('晓红', 1705, 100),
('小米', 1706, 100),
('小明', 1707, 99.9); -- 另一种兼容语法
insert into 表名 set 字段名1 = 值, 字段名2 = 值2...;
insert into stu1 set stu_name = '零零七', score = 88;
-- 查询数据(DML)
select *|字段列表 from 表名[查询条件];
/*
1, 当查询所有字段的时候,可以使用*代替
2, 查询条件可以省略,如果省略代表查询所有的记录,相当于where 1;
*/
select * from stu1 where 1;
-- 删除数据(DML)
delete from 表名[删除条件]
deleta from stu1 where score< 90; -- 提示:MySQL中的NULL,比较特殊,不参与任何的运算!或者说参与任何运算的结果都为NULL
-- 修改数据(DML)
update 表名 set 字段1 = 新值1, 字段2 = 新值2,...[修改条件];
update stu1 set age = age + 1 where 1;

模糊查询

_ :代表任意的一个字符

%:代表任意的字符(包括0个)

show collation like 'utf8_%';

设置校对集

 -- 设置校对集语法
collate 校对集;
create database php2017 default charset gbk collate gbk_chinese_ci; /* 常见的校对规则有:
ci结尾:不区分大小写
cs结尾:区分大小写
bin结尾:二进制编码比较
关于校对集,我们一般使用其默认值就行了
utf8不支持中文比较,但是gbk支持(比较的还是拼音)
在真实的项目中,一般不会用中文作为排序的字段! */