mysql中sql语法使用

sql 语句主要分为下面三种

DDL 数据定义语言包含数据库及其对象的语句。
DML 数据操作语言,包含允许更新和查询数据的语句(查询语句还可分为DQL)
DCL 数据控制语言允许授予用户访问数据库中特定数据的权限

DDL 数据库操作

  • 创建数据库 DDL
# 创建数据库
create database '库名' default charset 'utf8'
# 在 linux 中不需要登陆创建数据库
mysql -p'密码' -e "create database '库名' default charset 'utf8'"
  • 切换数据库
use '库名'
  • 查看所有数据库
show databases;
  • 查看当前在哪个库中
select database();
  • 删库
drop database 库名;
  • 查看创建的库信息
show create database 库名;
  • 数据库命名格式

数据库命名规则:
区分大小写
唯一性
不能使用关键字如 create SELECT
不能单独使用数字

关于 Linux 中 mysql 登陆语句详解

在 Linux 中,通常登陆 mysql 的 shell 语句是下面这句:

mysql -uroot -p'密码'

但是这个是不完整的,有一些缺省的参数,而完整的语句是下面这句:

mysql -uroot -p'密码' -hlocalhost -P3306 -S/var/lib/mysql/mysql.sock
-u # 这个是指定登陆的用户
-p # 这个是登陆用户的密码
-h # 登陆的 ip 地址
-P # 这个是端口号
-S # 套接字文件地址

** 还有一种语法就是进去到 mysql 服务器,直接在外部执行 mysql 语句 **

mysql -uroot -p'密码' -e 'sql 语句'
# -e 后面可以接 sql 语句,可以实现在 linux 终端执行 sql 语句

DDL 表的操作

创建修改添加删除等一些操作

  • 创建表 create table
create table 表名 (
        字段名 1  类型  约束,
        字段名 2  类型  约束,
);
el:
create table school (
id int not null primary key auto_increment comment '学校 id 号',
name varchar(100) null comment '学校名'
)# 在上面的 sql 语句中
# id  字段名
# int 是数据类型
# not null primary key auto_increment comment '学校 id 号',    这些都是对字段的约束
not null # 不为空 =》 表示此字段不能为空
primary key # 主键   一般对字段添加主键约束,会自动添加一个 not null 约束  因为主键不能为空
auto_increment # 这个是自增 也会自动给字段添加一个 not null 的约束,使用 insert 添加数据时,可不给此字段添加数据,会自动+1
comment  # 相当于备注  就像你有一个大名,家里人有时候还会喊你的小名

我列不完所有的约束,也写不完所有的数据类型,如果你想了解她,不如你主动向她挥手。
e 一把

  • 查看表结构
desc 表名;  # 可以查看 表中字段信息
show create table 表名 # 可以查看创建当前表所需要的 sql 语句
  • 查看当前在哪个库中
select database();
  • 查看当前库中表有哪些
show tables;
  • 显示数据的详细信息
show table status lick '表名';
  • 修改表
# 修改表名
alter table old_name rename new_name
# 也可以使用下面这个修改表名
rename table old_name to new_name
  • 复制表
# 复制表中所有东西
create table new_name (select * from old_name )
# 复制表结构
create table new_name (select * from old_name  where 5 = 4)   # 只要 where 后面等式结果返回的值为 false 就可以了
# 复制表中的记录
insert into new_name select * from old_name;
  • 修改字段
alter table 表名 add 新字段名 类型 约束  after 旧字段名
# 上面这个意思是给表添加一个新字段,放在旧字段后面。如果是 first  就是在表添加一个字段在第一列
# 将表中的旧字段名修改为新的字段名
alter table 表名 change 旧字段名 新字段名 类型  约束
# 修改表中字段的类型和约束
alter table 表名 modity 字段名 类型 约束
# 删除一个字段
alter table 表名 drop 字段
  • 删除表
drop table 表名
  • 查询表
select * from 表名
selete 字段名 from 表名
select 字段名 as 表列名 from 表名
# * 表示查询所有的字段
# as 相当于别名
  • 添加数据
insert into 表名 values (数据);
insert into 表名 value(数据),(数据);
# 上面的使用 value 和 values 都没啥区别
  • 更新数据
update 表名 set 字段 = 修改后的值  where 字段 =# 比如 a表中的数据有下面
id   name    age
1      a     22
# 如果将 age 的值修改为 23
update a set age=23 where id=1
# 这个 where 相当于对某一记录进行操作
  • 删除表中的一条记录
delete 表名 where 字段=delete 表名     # 直接使用这个的话,会直接清空表中的数据

你可能感兴趣的:(云计算-脑力风暴,mysql,sql,数据库)