MySQL语法:mysql数据库常用sql语句

黑窗口连接来远程mysql命令参数

mysql -h 1.13.181.242 -u root -p -P 3306

展示数据库

show databases;

新建数据库

create database 数据库名 charset utf8;

删除数据库

drop database 数据库名;

选择某一个库(进入某一个库) 出现 Database changed,就说明数据库已经被选择;

use 数据库名

展示所有的表 Empty 空的

show tables;

创建表

create table 表名( 字段名1 类型 [约束], 字段名2 类型 [约束], 字段名3 类型 [约束] );

查看表属性

desc 表名;

删除表

drop table 表名;

对表单添加信息

方法1:insert into 表名(name,gender,age,address) values("马克","男",20,"峡谷");

方法2:insert into 表名 values("马克","男",20,"峡谷"), ("李白","男",22,"峡谷");

查看表新增信息

select * from 表名;

表中字段数据类型

数值型

整数:tinyint int int(11) 指定几位

小数:decimal float decimal(5,2) 五位数中有两位是小数

字符串

char:固定长度 char(11) 存放两个字符,多余的位置由空格占位

varchar: 可变长度 varchar(20) 剩下多余的位置释放掉

时间

date:年月日 2020-01-01

time:时分秒 12:29:59

datetime :年月日时分秒 2021-01-01 12:29:59

year:年 2022 枚举

enum:单选 enum("男","女","中性") 集合

set:多选 set("游泳","下棋","唱歌")

约束类型:

唯一约束

unique(字段名,字段名)         #内容不可重复 否则报错

非空约束

字段名 类型 not null         # not null 字段的数值不能为空也不能为None

                                        #null允许为空

默认约束

字段名 类型 default"男"        #默认为

主键约束

字段名 类型 primary key         # 唯一且不能为空

自增约束

字段名 类型 primary key auto_increment         #唯一,非空,可自定义

外键约束

foreign key

外键

添加外键:

删除外键:
-- 需要先获取外键约束名称,该名称系统会自动生成,可以通过查看表创建语句来获取名称
1.第一步查询外键名及外键约束名:

show create table teacher;


>>>>>展示结果:
CONSTRAINT `SBook_comment_id_406b0112_fk_comment_id` FOREIGN KEY (`comment_id`) REFERENCES `comment` (`id`)

要删除的外键约束名>>>  SBook_comment_id_406b0112_fk_comment_id

要删除的外键名>>> comment` (`id`)


2.第二步删除外键约束:

alter table 表名 drop constraint 外键约束名

// alter table sbook drop constraint SBook_comment_id_406b0112_fk_comment_id;

3.第三步删除外键字段:

alter table 表名 drop 外键字段名;

// alter table sbook drop comment_id;

show create table permission;



-- 删除现有的外键约束
ALTER TABLE permission
DROP FOREIGN KEY permission_menuSuperior_id_aaea408c_fk_permission_id;

# 不能删就用这个
# alter table permission drop constraint permission_menuSuperior_id_aaea408c_fk_permission_id;

-- 添加新的外键约束,将 on_delete 更改为 NO ACTION(类似于 PROTECT)
ALTER TABLE permission
ADD CONSTRAINT permission_menuSuperior_id_aaea408c_fk_permission_id
FOREIGN KEY (menuSuperior_id)
REFERENCES permission(id)
ON DELETE NO ACTION;

操作表

注意:对所有表中字段的操作(修改表结构)都需要用到alter

语法:alter table 表名 add/drop/modify/change 字段名 类型[约束];

修改表名

语法:alter table 原表名 rename 新表名;

案例:alter table embloy rename employ;

给表中增加字段

语法:alter table 表名 add 字段名 类型 [约束];

案例:alter table employ add isdelete int;

删除表中字段

语法:alter table 表名 drop 字段名;

案例:alter table employ drop hobby;

操作字段

alter table commentmodel modify parent_id int default 0;

修改字段类型和约束

语法:alter table 表名 modify 字段名 类型[约束];

案例:alter table employ modify name varchar(32);

案例:alter table employ modify id int primary kay;

案例:alter table employ modify enumb int unique;

修改字段名

语法:alter table 表名 change 原字段名 新字段名 类型[约束];

案例:alter table employ change gender sex varchar(3);

操作数据

给表中增加数据

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

修改表中所有数据

update 表名 set 字段名=新值;

修改表中某一条数据

update 表名 set 字段名=新值 where 条件;

修改teacher表中 sex为男的所有 money的值

update teacher set money="2000.00" where sex="男";

修改表num2中 字段名为id. 1 中的数值

update num2 set num=num-50 where id=1; 

删除表数据

物理删除

删除表中某一条数据

语法:delete from 表名 where 条件;

案例:delete from people where sname="玛卡巴卡";

删除表中所有的数据

语法:delete from 表名;

案例:delete from people;

mysql清空表可以用delete和truncate两个命令来完成:      

1. delete          

① 语法:delete from table_name;          

② 示例:DELETE FROM `order`;      

2. truncate          

① 语法:truncate table table_name;          

② 示例:TRUNCATE TABLE `order`;

逻辑删除

语法:alter table 表名 add 字段名 类型 [约束];

案例:alter table people add isdelete int default 0;

将某一条数据设置为已删除 字段值为0说明未删除 值为1说明删除

语法:update 表名 set isdelete=1 where 条件;

案例:update people set isdelete=1 where name="王洋";

PyCharm连接数据库,创建表 

"""mysql--数据库    py--python文件的后缀名
python连接mysql    需要借助pymysql第三方模块
"""

"""创建表"""
# 导包
import pymysql

# 连接mysql数据库 connect 方法
# host:即ip,由于python和mysql都在本地运行  所以host直接为localhost
# port:即端口,默认为3306,端口是数字类型数据
# user:mysql数据库的用户名
# password:mysql数据库的密码(自己的密码)
# database:选择连接的数据库的库名
# charset:选择编码方式
con = pymysql.connect(host="localhost", port=3306, user="root",
                      password="123456", database="h2110a", charset="utf8")

# 需要借助游标对象来执行sql语句
# 创建游标对象  游标对象 = 数据库对象.cursor()
c1 = con.cursor()

# 编写sql语句  (注意:group是关键词,不能用在表字段上,可以加上_s之类的, group_s varchar(10),)
sql = """create table sttt(id int,name varchar(20),
gender enum("男","女","未知"),age int,address char(23));"""

# 执行  execute()
c1.execute(sql)

"""1.修改表名为student1  """
import pymysql

con = pymysql.connect(host="localhost", port=3306, user="root",
                      password="iamgod", database="h2110a", charset="utf8")

# 创建游标对象     数据库对象.cursor()
c1 = con.cursor()

# 编写sql语句
sql = """alter table stude rename student1"""

# 游标对象执行sql语句    execute()
c1.execute(sql)

你可能感兴趣的:(常用笔记,数据库操作,数据库,sql,mysql)