数据库基础操作

一、数据库的操作

数据库与客户端是通过网络进行交互的。

1、显示当前数据库

sql语句必须以 ; 结尾

show databases;

 2、创建数据库

create database 数据库名;

->如果数据库sql敲错了,会有提示。

->如果sql敲错了,可以按 ctrl+c来终止sql。

->create为关键字;  关键字不能作为变量名/表名/类名...。

->如果非得使用关键字作为表明等,可以使用 反引号 括起来。` `。与~在一个键上。

->加上 if not exists;创建表时,如果不存在就创建;存在也不会报错。

create database if not exists learnsql;

 3、选中数据库

对具体的数据库进行操作时,需要先选中你想操作的数据库。

use 数据库名;

4、删除数据库

删除之后,看不见对应的数据库,里边的表和数据也被全部删除。

drop database 数据库名;

删除之后的数据可能找不回来了。但是还会有一点机会,因为:操作系统把硬盘划分为盘块,每个盘块保存一部分数据;当进行删除时,会把数据标记为无效,后序会被系统分配给其他要保存的数据。但是在盘块被分配出去之前,上面原本的数据还在。【逻辑删除

二、数据表操作

1、了解一下数据类型

-> 数值类型:tinyint/smallint/int/bigint/float/double/decimal

->字符串类型varchar(size)【size表示字符串能包含几个字符】/text/mediumtext/blob[二进制形式的长文本数据]

->日期类型datetime【8字节】/timestamp【4字节】

2、数据表的操作

表操作之前,要 use 数据库;

2-1创建表

create table 表名(列名 类型, 列名 类型......);

 ->保证在同一个数据库中,不能有同名的表;

->保证表名不与关键字重复;

->可使用comment关键字为字段添加注释;添加注释还有另一操作:--  '姓名'

2-2 查看数据库中所有表

show tables;

2-3查看指定的表结构

desc 表名;

 

Field:字段;Type:类型;Null:是否允许为空;Key:索引类型;Default:这一列的默认值;Extra:扩充。

2-4删除表

drop table 表名;

 练习创建表:

 三、MySQL表的增删改查【基本】

(一)新增

1、插入的基本操作

insert into 表名 values(值,值......);

插入值的类型和个数 要与 表的列的类型、个数匹配。

插入中文时,报错了:

 一种持久的办法:直接修改mysql的配置文件,把数据库字符集配置成默认就是utf8

 

 

 

 保存完之后,重启服务器。【在服务窗口,右键->重新启动】。

 修改的配置,影响的是新的数据库。所以要对之前的数据库进行删库,重新建库。

 2、指定列插入

insert into 表名(指定插入哪几个列) values(列的值,......)

3、一次插入多行记录

insert into 表名 values(...,...), (...,...),()......;
                        //插入多组值

 (二)查询

建表:

 

查询操作,得到的是临时表。并不是磁盘上存的数据。

 1、全列查找

【查找出当前表所有的行,所有的列】

select * from 表名;

全列查找,其实也是一个危险操作。->MySQL是一个客户端-服务器结构的程序。当客户端发出sql请求给服务器时,采用select * 操作,就会让服务器大规模的读取磁盘上的数据,再把数据通过网卡写回到客户端。 如果当前存储的数量级非常大,这会导致读磁盘和写网卡的时间非常长,甚至把磁盘带宽和网卡带宽都吃满!严重时,会导致服务器卡死,无法响应其它客户端的请求。

解决上述问题:通常都是多网卡的。一个用来处理线上业务,一个负责内部使用,传递大量数据。

2、指定列查询

select 列名 from 表名;

 3、查询字段为表达式

表达式查询,还可以 列和列之间进行运算 进行查询

4、给查询结果的列起别名

使用 as.

5、查询时,进行去重

使用关键字distinct

把重复的记录,合并成一个;

去重操作,也可以针对多个列去重。->多个列去重时,只有多个列的数值都相同,才看作是重复的。

6、对查询结果,进行排序操作

使用order by。

->还可以使用多个列排序。指定多个列时,哪个列靠前,哪个列优先级就高。

7、条件查询

查询时指定筛选条件,where子句来表示条件。

->比较运算符:> , >= , < , <= , =【等于】

                / <=> , !=/<> ,

                between a and b:表示判定当前的值是否在[a,b]闭区间中,

                in(a,b,c......):判断当前值是否在()中出现过,出现过则认为是真。

                IS NULL / IS NOT NULL:看当前值是否为空值/是否非空

                like:模糊匹配

                两种 等于 比较的区别:NULL=NULL,结果是NULL,相当于false;

                                               NULL<=>NULL结果是true。

->逻辑运算符:and、or、 not

->基本查询

 where条件,也可以使用表达式

在where中使用别名是不行的。

 条件查询sql中,先执行where,符合条件记录,在执行select显示哪些列。

order by是在查询结果都知道之后才进行的,因此它可以。

 

->and/or查询

SQL中,and的优先级高于or。 

 ->范围查询

between .. and ..

in

 ->like模糊查询

其中,%代替任意个任意字符;_代替一个任意字符

->  =、  <=>

 

8、分页查询

select 列名 from 表名 limit N;  //查询前N条记录

select 列名 from 表名 limit N offset M;  //从第M条数据卡是,查询N条记录

 (三)修改

update关键字

update 表名 set 列名=值 where 条件;

 可以修改多个列。

eg:

 (四)删除

delete from 表名 where 条件;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值