Note9:Mysql

一,数据库安装

    ubuntu下安装:

sudo apt-get install mysql-server mysql-client

    启动:

service mysql start

    停止:

service mysql stop

    重启:

service mysql restart

    允许远程连接:

   1. 找到mysql配置文件:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

    2.将bind-address=127.0.0.1注释

    3.登录mysql:

mysql -uroot -p

    4.输入密码进入后授权:

grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option;
flush privileges;

    5.重启mysql

二,字段类型:

    在mysql中包含的数据类型很多,这里主要列出来常用的几种
    数字:int,decimal(例如:decimal(5,2)代表一个5位数,其中2位是小数)
    字符串:varchar,char  (其中char是固定字符,varchar是非固定字符)
    日期:datetime

    布尔:bit

三,约束:

    主键primary key
    非空not null
    惟一unique
    默认default

    外键foreign key

四,数据库操作:

    创建数据库:

create database 数据库名 charset=utf8;

    删除数据库:

drop database 数据库名;

    切换数据库:

use 数据库名;

    查看当前所选择的数据库名:

select database();

    查看msql中有哪些数据库:

show database;

五,表操作:

    查看当前数据库中的所有表:

show tables;

    创建表(举个student表例子):

create table students(
id int auto_increment primary key not null,
sname varchar(10) not null,
gender bit,
isdelete bit default 0
);

    查看表结构:

desc 表名;

    删除表:

drop table 表名;

    更改表名称:

rename table 原表名 to 新表名;

    修改表:

alter table 表名 add|change|drop 列名 类型;

    如:

    删除属性字段:alter table student drop gender;

    添加hobby属性:alter table student add hobby varchar(20);

    改变属性:alter table student change name name varchar(20) not null;

六,数据操作:

    查询:

select * from 表名;

    插入数据:

全列插入:insert into 表名 values(...);
缺省插入:insert into 表名(列1,...) values(值1,...);
同时插入多条数据:insert into 表名 values(...),(...)...;
或insert into 表名(列1,...) values(值1,...),(值1,...)...;

    修改数据:

update 表名 set 列1=值1,... where 条件;

    物理删除(真实删除一条数据):

delete from 表名 where 条件;

    注:相反有逻辑删除,即将属性isdelete改为要删除的值。

七,数据库查询语法:

    1.条件:

select * from 表名 where 条件;

    

    2.比较运算符:

    >,<,=,!=,<>,>=,<=

    如查id小于等于4的科目信息

select * from subject where id<=4;

    

    3.逻辑运算符:

    and,or,not

    如查询id大于3的女生信息

select * from student where id>3 and gender='女';

    

    4.模糊查询:

    like
    %表示任意多个任意字符

    _表示一个任意字符

    如查询姓张的学生信息

select * from student where sname like '张%';

    

    5.范围查询:

    in,between....and...

    查询学号是1或3或4的学生

select * from student where id in (1,3,4);

    查询学号从1至5的学生

select * from student where id between 1 and 5;

    

    6.空判断

    is null,is not null

    查询爱好为空的学生

select * from student where hobby is null;

    

    7.聚合

    查询学生总数

select count(*) from student;

    查询女生id最大值

select max(id) from student where gender='女';

    查询女生id最小值

select min(id) from student where gender='女';

    查询男生id总和

select sum(id) from student where gender='男';

    查询男生id平均值

select avg(id) from student where gender='男';

    

    8.分组

    按照字段分组,表示此字段相同的数据会被放到一个组中,可以对分组后的数据进行统计,做聚合运算

    查询男女生总数

            

    分组后可进行筛选数据

select gender,count(*) from student group by gender having gender='男';

    having 与 where的区别:

    where是对from后面指定的表进行数据筛选,属于对原始数据的筛选

    having是对group by的结果进行筛选

    9.排序

    语法:

select * from 表名
order by 列1 asc|desc,列2 asc|desc,...

    查询未删除男生学生信息,按学号降序

select * from student
where gender='男' and isdelete=0
order by id desc;

    10.分页

    语法:

select * from 表名
limit start,count;

    从start开始,获取count条数据

    start索引从0开始

    如:

                

    11.总结

    完整的select语句:

select distinct *
from 表名
where ....
group by ... having ...
order by ...
limit star,count

    执行顺序:

    from 表名
    where ....
    group by ...
    select distinct *
    having ...
    order by ...
    limit star,count

    注:实际使用中,只是语句中某些部分的组合,而不是全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值