Mysql数据库组成
服务端:主要存储数据,并接收用户发过来的SQL语句,并执行结果返回给客户端
客户端:下发用户要执行的sql语句,并显示服务器返回的执行结果
命令行数据库连接方式
数据类型
数字类型
字符串类型
时间和日期类型
约束
命令行操作数据库、表
查看所有的数据库 | show database; |
使用数据库 |
use 数据库名; |
查看当前使用的数据库 | select database(); |
创建数据库 | create database 数据库名 charset=utf8; |
删除数据库 | drop database 数据库名; |
查看数据库所有的表 | show tables; |
查看数据库表的结构 | desc 表名;(desc =describe) |
查看数据表的创建语句 | show create table 表名; |
数据库表操作
1.创建数据库表
语法:
create table表名(
字段名1 类型 约束,
字段名2 类型 约束
... ... ...
)
例子:
创建一个学生表,字段要求:姓名(长度为10),年龄,身高(保留2位小数)
CREATE table students(
id int UNSIGNED PRIMARY KEY auto_increment,
name VARCHAR(20),
height decimal(5,2)
)
2.删除数据库表
drop table 表名 (该命令将永久性删除表和其所有数据)
drop table if exists students (删除表之前检查表是否存在。如果表存在,则表会被删除;如果表不存在,则不会引发错误)
数据增删改查操作
增(insert):
1.1增加一行数据
insert into 表名 values(...)
例子:
insert into students values(0,'jingbeng',12.66);
//主键自增长可以用0或者NULL代替
另一种写法:
insert into students(name) values('nnn')
1.2增加多行数据
方式一:写多条insert语句,多条语句之间用";"隔开
insert into students(name) value ('jingbeng1');
insert into students(name) value ('jingbeng3');
insert into students values(0,'jingbeng2',23,167.56)
方式二: 通过一条insert语句插入多条数据,数据间用","分隔
格式一: insert into 表名 values (...), (...) ...
例: insert into students values(0,'亚瑟3',23,167.56),(0,'亚瑟4',23,167.56)
格式二: insert into 表名(字段名1,...) value(值1,...),(值1,...)...
例: insert into students(name) value ('老夫子5'),('老夫子6')
2.查(select):
1.1简单查询
select * from 表名;
例子:select * from students;
1.2查询部分字段数据
select 字段1,字段2... from 表名;
例子:select name,sex,age from students;
1.3起别名
表起别名:select 别名.字段1,别名.字段2... from 表名 as 别名;
例子:select s.name,s.age from students as s;
字段起别名:select 字段1 as 别名1,字段2 as 别名 from 表名
例子:select name as n,age as a from students;
1.4字段内容去重
select distinct 字段 from 表名;
1.5条件查询(where)
select 字段1,字段2... from 表名 where 条件;
例: select * from students where id=1;
说明: where支持多种运算符进行条件处理
比较运算
逻辑运算
模糊查询
范围查询
空判断
1.5.1条件查询-比较运算符
例1:查询小乔的年龄
select age from students where name='小乔’
例2:查询20岁以下的学生
select * from students where age<20
例3:查询家乡不在北京的学生
select * from students where hometown!='北京'
1.5.2条件查询-逻辑运算符
例1:查询年龄小于20的女同学
select * from students where age<20 and sex='女'
例2:查询女学生或'1班'的学生
select * from students where sex='女' or class='1班
例3:查询非天津的学生
select * from students where not hometown='天津'
1.5.3条件查询-模糊查询
关键字: like
% :匹配任意多个字符
- : 匹配一个任意字符
例1:查询姓孙的学生
select * from students where name like '孙%'
例2:查询姓孙且名字是一个字的学生
select * from students where name like '孙_'
例3:查询姓名以‘乔’结尾的学生
select * from students where name like '%乔'
例4:查询姓名中包含‘白’的学生
select * from students where name like '%白%'
1.5.4条件查询-范围查询
in表示在一个非连续的范围内
例:查询家乡是北京或上海或广东的学生
select * from students where hometown in('北京'