MySQL增删改查的常用操作指令总结

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
总结:
1、数据库操作:
创建库:
    create database db_name;
 
查询库:
    show databases;     //显示所有的数据库
    show create databases db_name; //显示特定的数据库
 
删除库:
    drop database db_name;
 
修改库:
    alter database db_name [modify command];
    alter database db_name character set gbk;
 
2、表操作:
创建表:
    use db_name;
    create table tbl_name (column_structure) [tbl_option];
如:
    create table tbl_name(
    variable_name1 varchar(10)
    variable_name2 int
    );
create table db_name.tbl_name(
    variable_name1 varchar(10)
    variable_name2 int
    );
 
查询表:
查看有哪些表:  
    show tables;
或show tables like 'pattern_%';
查看表的创建信息:
    show create table tbl_name;
或show create table tbl_name \G
查看表的结构:
    describe tbl_name;
desc tbl_name;]
 
删除表:
    drop table [if exists] tbl_name;
 
修改表:
修改表名:
单个:rename table old_tbl_name to new_tbl_name;
多个:rename table old_tbl_name1 to new_tbl_name1, old_tbl_name2 to new_tbl_name2;
跨数据库:rename table old_tbl_name to db_name.new_tbl_name;
修改列定义:
增加新列定义:add
    alter table tbl_name add new_column_name data_type; 
alter table exam_student add height int;
修改列的定义(新的属性或者数据类型):modify
    alter table tbl_name modify column_name new_data_type;
删除一个列:drop
    alter table tbl_name drop column_name;
重命名一个列:change
    alter table tbl_name change old_column_name new_column_name new_data_type;
修改表选项:
    alter table tbl_name new_tbl_option;
    alter table tbl_name character set utf8;
 
3、数据操作:
创建数据:
    insert into tbl_name (fields_list) values (values_list);
如:insert into exam_student (stu_name, stu_no) values ('xiaoming', 'php030_01');
若插入所有字段值:
insert into exam_student values ('xiaoming', 'php030_01', 98);
 
查询数据:
查看字段信息:
    select * from tbl_name;
参看具体字段列表信息:   
select fields_list from tbl_name where condition;
如:默认状态下select stu_name, stu_no from exam_student;
或:select stu_name, stu_no from exam_student where 1;
有条件查询:
select * from tbl_name where condition;
select * from exam_student where fenshu >= 60;
 
删除数据:
    delete from tbl_name condition;
delete from exam_student where fenshu <= 50;
 
修改数据:
    update tbl_name set field = new_value where condition;
如:update exam_student set fenshu =100 where fenshu >= 97;
 
4、主键:primary
如:法一:
create table teacher(
t_id int primary key [auto_increment],
t_name varchar(5),
class_name varchar(6),
t_days tinyint unsigned
);
法二:
create table teacher(
t_id int,
t_name varchar(5),
class_name varchar(6),
t_day tinyint unsigned,
primary key (t_id)
);
insert into teacher values (1, '王老师', '0225', 23);
自动增长:auto_increment
    alter table tbl_name auto_increment initial_value;
 
5、外键:foreign key
如:
主表:
create table itcast_class(
class_id int primary key auto_increment,
class_name varchar(10) not null default 'itcast_php' comment '班级名称'
) character set utf8;
从表:
create table itcast_student(
stu_id int primary key auto_increment,
stu_name varchar(10) not null default '',
class_id int,
foreign key (class_id) references itcast_class (class_id)
) character set utf8;
插入数据的顺序:先主表,后从表
insert into itcast_class values (null, 'php0331');
insert into itcast_student values (null, '张三', 1);
删除操作:
alter table itcast_student drop foreign key itcast_student_ibfk_1;
alter table itcast_student add foreign key (class_id) references itcast_class (class_id)
on delete set null;/*主表里删除某个字段,从表若对应外键则变成null*/
或者
on delete cascade;/*主表删除一个字段,从表对应的外键则会删除相应的值*/
又或者
on update restrict;/*不允许主表进行更新操作*/
delete from itcast_class where class_id = 1;

  

posted @   Andya_net  阅读(346)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示