数据库基础:SQL语言基本使用

SQL

? 结构化查询语言。同时也是数据库脚本文件的扩展名。

? 用于存取数据以及查询、更新和管理关系数据库系统。

create      增
delete      删
update      改
select      查
read        读

命令连接到数据库

mysql -u 用户名 -h 服务端IP地址 -p 密码

例:
mysql -u  root  -h  127.0.0.1  -p 123456

增——creat,insert

create database test;       #创建名为test的数据库
create table xscj<                      #创建名为xscj的表
    ->  id int<10> primary key,         #primary key 表示指定这一列主键
    ->  name varchar<20> not null,
    ->  class varchar<40> not null,     #int,varchar表示数据类型
    ->  chinese int<10> not null,
    ->  math int<10> not null,
    ->  english int<10> not null        #最后一列,不需要加逗号
    ->  >;                            #必须加分号“;”
    
insert into `test`.`xscj`(`id`,`name`,`class`,`chinese`,`math`,`english`)       values ('20190406','李华','一班','87','89','94')
        #将数据添加到xscj表中
        #库中有的数据用反引号,新添加的内容用引号
        #同时插入多条数据时用逗号隔开即可

删——drop,delete

drop用于删除数据库或表

drop database test;         #删除数据库test
drop table xscj;            #删除数据表xscj

delete用于删除表中的数据

```sql lite
delete from 表名 where 删除条件
例:
delete from xscj where id=20190406 #删除id为20190406的数据

```

改——update

update能完成更新操作,用于修改数据表中内容

update xscj set english="90" where id='20190406'
    #修改id为20190406的英语成绩为90

查——show,select

show命令能够查看当前数据库以及表

show datebases      #查看所有数据库
show tables         #查看当前数据库下所有数据表,需在使用use进入库后使用

? select可以查询数据表内的数据,可以是使用通配符"*"查询表内的所有内容,也可以查询指定列内容

查询表内所有数据

? 查询结果为一个二维表

SELECT * FROM <表名>
例:
SELECT * FROM students
    # SELECT 是关键字,表示执行查询
    # “ * ”表示所有列
    # FROM 表示将要从那哪个表查询
    # students 是被查询的表名,即students表
    
SELECT id,name FROM test.students;      #查询指定列

条件查询

SELECT * FROM <表名> WHERE <条件表达式>

例:
SELECT * FROM students WHERE score >= 80 AND gender = 'M'
    # "<条件1> AND <条件2>"表示满足条件1并且满足条件2 
    # gender列存储的是字符串,需要使用单引号
    # 查找符合条件“分数在80分或以上”,并且还符合条件“男生”的数据
    
SELECT * FROM students WHERE score >= 80 OR gender = 'M'
    # 查询符合条件“分数在80分以上”或者“性别男”的数据,符合其中一项即可
    
SELECT * FROM students WHERE NOT class_id = 2
    # 查询符合条件“不是二班的学生”的数据
    # NOT class_id = 2 等价于 class_id <> 2

按多个条件查询

SELECT * FROM students WHERE (score < 80 OR score > 90) AND gender = "M"
    #查询符合条件“分数在80分以下或者在90分以上,并且是男生”的数据

常用列属性

NULL            空属性(默认属性)
NOT NULL        不为空
primary key     主键
unique key      唯一键
comment         描述
default         默认值
auto_increment   自动增长

常用命令

show databases;                  #查看数据库
show  tables;                   #查看库下面数据表
select database();              #查看当前所在数据库
select version();               #查看当前服务版本
select user();                  #查看当前用户
select now();                   #查看当前日期

create database 库名;                     #创建数据库
drop database 库名;                       #删除数据库
use 库名;                                 #使用(进入)数据库

create table 表名(列名 列属性);            #创建表
drop table 表名;                          #删除数据表
desc 表名;                                #查看表结构

insert into 表名(列名) values(列值);      #向表中添加数据
delete from 表名 where 条件 ;               #删除表中符合条件的数据
update 表名 set 列名='值' where 条件;         #修改数据
select 列名 from 表名 where 条件;             #查询数据

修改表结构:
alter table 表名 rename 新表名;              #修改表名
alter table 表名 modify 字段名 字符类型;        #修改字段的字符类型
alter table 表名 add 新列名 数据类型;            #添加列
alter table 表名 change 旧列名 新列名 新数据类型;    #修改列名
alter table 表名 drop 列名;                        #删除列             drop database 库名;   #删除数据库
drop table 表名;      #删除表

常用符号

逻辑运算符
AND         同时满足多个条件
OR          多个条件中只要一个条件满足
IN          可选范围内查找数据
NOT         否定其后所有条件
between and     介于某范围之间
not between and     不在范围之间
优先级:NOT > AND > OR

通配符:
%           #匹配任意多个字符
_(下划线)      #匹配任意一个字符


算术运算符:
+       加
-       减
*       乘
/       除
%       取模

比较运算符:
>、<         大于、小于
>=、<=       大于等于、小于等于
=           相等
<>          不相等
like        判断相似,配合-或%使用

确定范围:
between and         在范围内
not between and     不在范围内

相关推荐