SQL数据库入门(增删改查)

一、访问数据库

1、本地访问

mysql -u用户名 -p密码	方便但有泄露密码的风险
mysql -u用户名	-p 回车	隐藏密码的输入,建议使用此方法

2、远程登录

​ 先使用 telnet ip 或者 ssh user@ip 登录到安装Mysql的服务器。

​ 然后在使用mysql -u用户名 -p登陆。

3、客户端登录

​ 参考数据库环境搭建

4、使用编程语言链接

使用libmysqlclient -dev库+MySQL C API,后续讲解

注意:登陆后要选择数据库

二、数据控制语句

grant <权限> on <对象> to <用户>;
revoke <权限> on <对象> from <用户>;
flush privileges; 当权限发生改变后,要进行刷新

三、数据定义语句

1、创建表

create table 表名(字段名 数据类型,...);
create table Student(
    name char(20),
	sex char,
	id int);

show tables;	可以查看数据中所有的表
desc 表名;		可以查看表中的结构

2、修改表

a、修改表名

rename table 旧表名 to 新表名;
rename table Student to student;

b、增加列

alter table 表名 add(字段名 数据类型);
alter table Student add(id int);

c、删除列

alter table 表名 drop 字段名;
alter table Student drop addr;

注意:删除列时,数据也会随之删除

d、修改列类型

alter table 表名 modify 字段名 新类型;
alter table Student modify name char(30);

e、修改列名

alter table Student change 旧字段名 新字段名 新类型;
alter table Student change id stu_id char(10);

3、删除表

a、删除表数据,保留表结构

truncate 表名;

b、删除表数据和表结构

四、操作表数据

drop table 表名;

1、插入表数据

a、按顺序插入

insert into 表名 values(数据1,数据2,...);
insert into Student values("hehe",'m',10014);

b、指定字段插入

insert into 表名(字段1,字段2,...) values(数据1,数据2,...);
insert into Student(name,id) values("xixi",10086);

练习1、给教师表添加若干条记录

2、修改表数据

update 表名 set 字段名=数据,... where 条件;
update Student set sex='w',id=12306 where id=10086;

注意:如果没有条件,那么表中的每个数据都会改变

练习2、只修改教师表中的一条数据

3、删除表数据

delete from 表名 where 条件;

注意:如果没有条件,则相当于 truncate 表名 的功能,所有的数据都会被删除。

五、数据查询语言

select 字段1,字段2,... from 表名 where 条件;

注意:*代表所有字段

六、事务控制

1、commit 提交

​ 数据操作语言对于其他用户而言,不会立即生效,也就不能及时查询到数据的变化,需要commit语句确认后,其他用户才能看到。

2、自动提交

​ 在某些MySQL数据库中默认开启了autocommit,也就是自动提交(目的为了方便用户使用)。

​ 查看当前连接是否开启自动提交

show variables like 'autocommit';

​ 设置当前连接关闭或者开启自动提交

set session autocommit=0|1; 

​ 设置所有连接关闭或者开启自动提交(需要root)

set global autocommit=0|1; 

3、rollback 回滚

​ 当数据操作语言对数据进行更改后,如果没有使用commit提交,那么就可以回滚撤销,把数据还原成更改前的样子(上一次commit之前)。

4、savepoint 保存点

savepoint 保存点名;
insert into Student values("dd1",'m',10077);
savepoint p1;
insert into Student values("dd2",'m',10078);
savepoint p2;
insert into Student values("dd3",'m',10079);
savepoint p3;
rollback to savepoint 保存点名;

保存点配合rollback可以撤销到指定位置

七、数据查询

1、排重查询 distinct

​ 在表中可能有多个重复的数据,查询数据是带上distinct关键字可以排除重复数据。

注意:查询多个字段时,所有字段都相同时才会被认定为重复。

select distinct 字段 from 表名;
select distinct name from Student;

2、算数运算符号

select 字段+-*/% from 表名;
可以对查询到的结果进行算术运算,如果想改变运算符的优先级,可以使用小括号。

3、排序

select 字段 from 表名 order by 字段1,字段2,... [asc|desc];
可以对多个字段进行排序,ASX升序(从小到大,默认),desc(从大到小);
select * from Student order by id asc;

4、where 子句按条件查询

​ 配合关系运算符:> < >= <= = !=

​ 为什么SQL语句中判断相等只使用一个等号?

因为SQL语句中无法定义变量,也就不需要赋值,所以=只有一个作用,就是用来判断是否相等。

select * from 表名 where 字段 关系运算符 数据;

配合逻辑运算符:and(&&) or(||) not(!)
select * from 表名 where 条件1 and 条件2

特殊条件1:between and
select * from 表名 where 字段 between A and B;
字段 between A and B <=> 字段>=A and 字段<=B;

特殊条件2:in
select * from 表名 where 字段 in (A,B,C,...);
select * from Student where id in (10011,10013);

特殊条件3:is null,is not null
注意:在数据表中null是一种状态,而不是一个值,所以无法用=!=直接判断,而是需要使用is null和is not null 来判断数据是否为null
select * from 表名 where 字段 is null;
select * from 表名 where 字段 is not null;

特殊条件4:like
在SQL语句中也支持模糊查询,但需要配合通配符使用,但只针对字符型数据使用。
select 字段 from 表名 where 字段 like "%str_";
% 替换0个或多个字符,相当于命令行中的*
_代表一个字符
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值