MySQL数据库 命令行 学习笔记(一)
常用关系型数据库
1 MySQL:开源免费的适用于中小型企业的免费数据库
2 oracle:甲骨文公司,商业软件,收费,适用于大型电商网站
3 db2:IBM公司,银行系统主要采用db2
4 SqlSever:Windows里面,政府网站asp.net,大学教学通常使用SqlSever,图形化工具做的不错
NOSQL非关系型数据库:key:value
关系型数据库:用来描述实体与实体之间的关系
E-R关系图:实体用方框,属性用椭圆,关系用菱形
MySql的SQL语句
SQL:structure query language 结构化查询语言
DDL:数据库定义语言:定义数据库和数据库表的结构:create(创建)、drop(删除)、alter(修改)
DML:数据操作语言:用来操作数据 insert(插入)、update(修改)、delete(删除)
DCL:数据控制语句:定义访问权限,取消访问权限,安全设置 grant
DQL:数据查询语句:select(查询) from 表名 where 条件
数据库的CRUD的操作
登录数据库服务器:mysql -h localhost -u root -p
创建数据库:create database 数据库名称;
create database day06;
create database 数据库名称 character set 字符集;
create database day06_1 character set utf8;
create database 数据库名称 character set 字符集 collate 校对规则;
create database day06_2 character set utf8 collate utf8_bin;
查看数据库
show databases;
查看数据库的创建过程
show create database 数据库名字;
修改数据库的操作
alter database 数据库名字 character set 字符集;
alter database day06_1 character set gbk;
删除数据库
drop database 数据库名字;
drop database day06;
其他数据库操作
切换到某一数据库
use 数据库名称;(在该数据库创建表前使用该语句)
查看当前正在使用的数据库
select database();
表的CRUD操作
创建表
create table 表名(列名 列的类型(长度) 约束,列名2 列的类型(长度) 约束);
列的常用类型:
int
char/varchar char:固定长度 varchar:可变长度
double
float
boolean
date: YYYY-MM-DD
time: hh:mm:ss
datetime: YYYY-MM-DD hh:mm:ss 默认值是null
timestamp: YYYY-MM-DD hh:mm:ss 默认值是当前时间
text: 用来存放文本
blob: 存放二进制
列的约束:
主键约束:primary key
唯一约束:unique
非空约束:not null
例:
实体:学生 ID 姓名 性别 年龄
create table student(
sid int primary key,auto_increment//主键,自增长
sname varchar(10),
sex int,
age int)
查看表
查看所有表
show tables;
查看表的创建过程
show create table 表名;
查看表结构(内容)
desc 表名;
修改表
添加列(add)
alter table 表名 add 列名 列的类型 列的约束
alter table student add chengji int not null;
修改列(modify)
alter table student modify 列名 列的类型;
alter table student modify sex varchar(2);
修改列名(change)
alter table student change 原本的列名 新的列名 列的类型;
alter table student change sex gender varchar(2);
删除列(drop)
alter table student drop 列名;
alter table student drop chengji;
修改表名(rename)
rename table 原来的表名 to 新的表名;
rename table student to heima;
修改表的字符集
alter table 表名character set 新的字符集;
alter table heima character set gbk;
删除表
drop table 表名;
Sql对表中数据的CRUD的操作
插入数据
insert into 表名values(值1,值2,值3); 插入全列数据
insert into 表名(列1,列2) values(值1,值2); 插入部分字段
批量插入(效率更高)
insert into 表名values
(值1,值2,值3),
(值4,值5,值6),
(值7,值8,值9);
删除数据
delete from 表名 where 条件;
delete from student where sid=10;
delete from student; 将表中的数据全部删除
delete 删除数据与truncate 删除数据的区别:
delete:DML 一条一条删除数据
truncate:DDL 先删除表再重建表
如果数据比较少,delete比较高效
如果数据比较多,truncate比较高效
改数据
update 表名 set 列名=值,列名2=值 where 条件;
update student set sname=‘李四’ where sid=5;
如果值是字符串,日期要加上单引号
查询数据
select 列名1 列名2 from 表名 where 条件
select * from 表名; 查询表内所有内容
表别名(as可以省略)
select p.name,p.price from product as p;//将product表名字改成p
列别名
select pname as 商品名称,price as 商品价格 from product;//将product表中pname列名改成商品名称,将price列名改成商品价格
去除重复的值
select distinct price from product;
运算查询:在查询结果上做运算
select **,price*0.8 as 折后价 from product;//查询所有列,并将price这一列乘以0.8填入新的一列,叫做折后价列
条件查询
select *from product where price>60;//查询price>60的数据
select *from product where price>10 and price<100;//查询10<price<100的数据
select *from product where price between 10 and 100;//查询10<price<100的数据
select *from product where price<30 or price>100;//查询price<30或者price>100的数据
模糊查询(like)
_:代表一个字符
%:代表多个字符
select * from product where pname like ‘%饼%’;//查询出名字中带有饼的所有商品
select * from product where pname like ‘_熊’%;//查询出名字第二个字是熊的所有商品
in 在某个范围中获得值
select * from product where cno in (1,4,5)//查询cno这一列的值在1 4 5里的所有商品
排序查询(order by 关键字)
asc : ascend 升序
desc : descend 降序
select * from product order by price;//查询所有商品按照价格排序(默认升序)
select * from product order by price desc;//查询所有商品按照价格降序排序
select * from product where pname like ‘%小%’ order by price asc;//查询名称中有 小 的商品 ,按照价格升序
聚合函数
sum();求和
avg();求平均数
count():统计数量
max():最大值
min():最小值
select sum(price) from product;//获得所有商品价格总和,price是价格列名
select avg(price) from product;//获得所有商品的平均价格
select count(*) from product;//获得所有商品的个数
注:where 条件后面不能接聚合函数
分组(group by)
select cno,count() from product group by cno;//根据cno字段分组,分组后统计商品的个数,并创建count()列
select cno,avg(price) from product group by cno having avg(price)>60;//根据cno分组,分组统计每组商品的平均价格,并且商品的平均价格>60
having 关键字 可以接聚合函数 出现在分组之后
where 关键字 不可以接聚合函数 出现在分组之前
编写顺序
select …from…where…group by…having…order by
执行顺序
from…where…group by…having…select…order by
---------------------
作者:陈超zzu
来源:CSDN
原文:https://blog.csdn.net/chenchaozzu/article/details/83056037
版权声明:本文为博主原创文章,转载请附上博文链接!
MySQL数据库 命令行 学习笔记(一)的更多相关文章
- [整理]ADB命令行学习笔记
global driver# 元素定位driver.find_element_by_id("id") # id定位driver.find_element_by_name(" ...
- 【Linux基础】Linux基础命令行学习笔记
绝对路径:cd /home/python相对路径:cd Downloads . 表示:当前那路径..表示:当前路径的上一层../.. 表示:当前路径的上二层 没有...或者以上的 ls: ls 查看当 ...
- mysql 数据库 命令行的操作——对库的操作
1.查看所有数据库 show databaese; 2.查看当前所用的数据库 show databases(): 3.切换数据库 use(数据库名): 4.创建数据库 create database ...
- mysql 数据库 命令行的操作——对表和字段的操作
一.对表的操作 1.查看所有表 show tables: 2.创建表 create table 表名(字段1 类型1 约束1 ,字段2 类型2 约束2): 3.修改表的名字 rename table ...
- (转)Mysql常用命令行
原文:http://www.cnblogs.com/TsengYuen/archive/2012/01/11/2319034.html Mysql常用命令行 Mysql经常使用号令行大全 熬头招.my ...
- MySQL事务控制语句(学习笔记)
MySQL事务控制语句(学习笔记) MySQL事务控制语句 在mysql命令行的默认下,事务都是自动提交的,sql语句提交后马上会执行commit操作.因此开启一个事务必须使用begi ...
- MySQL实战45讲学习笔记:第三十九讲
一.本节概况 MySQL实战45讲学习笔记:自增主键为什么不是连续的?(第39讲) 在第 4 篇文章中,我们提到过自增主键,由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧 ...
- Flas-SQLAchemy数据库操作使用学习笔记
Flas-SQLAchemy数据库操作使用学习笔记 Flask-SQLALchemy 是一个给你的应用添加 SQLALchemy 支持的 Flask 扩展.SQLALchemy 是Python语言的S ...
- Linux——帮助命令简单学习笔记
Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信 ...
随机推荐
- python 常用网站
https://www.tutorialgateway.org/python-tutorial/
- 如何将Team Viewer 从商务版重新安装成个人/非商务版 变成免费版本
问题分析: 由于安装时选择如何使用 Team Viewer13 时,选择商务用途,则其为非免费的,只能试用一段时间,后面想要转成个人/非商务用途,则不行,因为 其安装时绑定了该电脑的 MAC地址(网卡 ...
- 总结java IDE (eclipse)快捷键
Eclipse快捷键 10个最有用的快捷键:Eclipse中10个最有用的快捷键组合:一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码 ...
- JavaScript的局部变量和全局变量小知识
(了解一下,避免初学者犯错,但下面定义全局变量的做法并不推荐,只是让你们知道这是怎么一回事) 如果在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,例如: function test ...
- tcp 与udp 的区别
1.TCP和UDP对比 TCP(Transmission Control Protocol)可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用 ...
- Qt的类:qfileinfogatherer
这篇文章中,探索Qt中的类qfileinfogatherer类,先给出私有类头文件.我们先想一想要形成一个信息采集者,需要什么?需要一个线程,当文件信息发生变化的时候,作为一个槽来接收信号. 先预备一 ...
- Vue的计算属性,监视属性代码理解
1.计算属性:在computed属性对象中定义计算属性的方法,在页面中使用{{方法名}}来显示计算的结果 //计算属性 computed:{ // 计算属性值的一个方法,方法的返回值是属性值,初始化显 ...
- java中字符串“不可变性”的破坏,使用反射破坏final属性。以及涉及到字符串常量池的问题。
大家都清楚java中String类是不可变的,它的定义中包含final关键字.一旦被创建,值就不能被改变(引用是可以改变的). 但这种“不可变性”不是完全可靠的,可以通过反射机制破坏.参考一下代码: ...
- SpringMVC后台接受前台传值的方法
1.HttpRequestServlet 接收前台传值 @RequestMapping("/go5") public String hello5(HttpServletReques ...
- Delphi编程之爬取贴吧图片最终版
接着前面两篇文章的内容,我们今天把这个贴吧爬取图片的程序完善,让它具有可以下载贴吧多页和帖子多页图片的能力. 主界面设计如下,包含3个labelededit,3个button,1个memo,1个str ...