sql -------- mysql ---->免费开源的关系型数据库

3W1H(what?why?when?how?)

1、什么是数据库?DB

        数据库(database)数据存储的仓库,简称DB

        DBMS(databaseManagers)数据库管理的软件

2、为什么学习数据库?

        方便存储使用数据

3、数据库在软件开发的地位?

        数据存储层

4、安装MySQL

|-- window:

        1、使用压缩包安装需要把bin配置到环境变量path   注意解压路径不能包含特殊字符和中文

        2、以管理员身份打开cmd 切换盘符到 文件解压的那个盘符下  指令:盘符:

        3、

此时是已经安装过mysql了

        4、重启 net start mysql

        5、mysql -h(ip地址)  -p(端口=3306)  -u(用户)  -p(密码)

        6、配置my.ini文件中的basedir 和 datadir

|-- Linux

        1、sudo apt  install  mysql  --server mysql cilent 

        2、安装路径: /user/sbin     配置路径:/etc

        3、查看进程 ps -ef | grep mysql

                安装ssh 指令 apt install openssh-server

                 which 应用名称  查看安装路径

        Linux下远程连接MySQL:

                1、修改mysql库中user表中的host字段,有localhost %

                2、修改/etc/mysql/mysql.conf.d/mysqld.cnf文件

                3、重启mysql

        启动mysql的四个参数  -h主机(默认localhost)  -P端口(默认3306) -u用户  -p密码

mysql在linux下是默认关闭远程连接的(安全)开启远程连接

            update mysql.user set host='%' where user="root"

                linux将配置文件中mysql.cnf文件        /etc/mysql/mysql.conf.d/mysql.cnf        bind-address 注释掉

                 重启mysql            sudo service restart mysql                    ps -ef |grep mysql

5、简单的MySQL的操作

        常见的DDL语句

                show databases  查看所有数据库

show databases

             create database db_py  创建db_py数据库

                drop databse  databaseName  删除数据库

            use db_py 使用db_py数据库

                show tables 查看当前数据库下的表(还没有创建表)

                创建表  

              删除表 drop table tableName

                    drop table if exists 表名称        truncate [table] 表名称(删除后不可恢复)           delete from 表名(删除后有办法恢复)

                    desc tableName; 查看表结构

6 Mysql的数据类型整数 

        int   浮点数 float decimal      字符串 char varchar    文本类型 text    

        日期 data(只能表示年月日)、time (只能表示时分秒)、datatime(年月日时分秒)

           binary 二进制    布尔 bit

7、Mysql的创建、删除、授权用户(DBA)

        grant all[select,update,drop,create] on *.* to ‘用户名称’@’地址’ identified by 密码

    如: grant all on db_py1710.*  to  ‘cmt’@’%’  identified by  ‘cmtt’

    删除用户  use mysql      Delete from user where user=‘cmt’ and host=‘%’

8、数据库的备份

            mysqldump 命令

            mysqldump –u root –p dbname > 保存路径.sql

            mysqldump –u root –p db_bbs > d:/db_bbs.bak.sql

                        [将数据库db_bbs以脚本的形式保存到D盘]

                        将sql脚本还原为数据库

                        mysql –u root –p dbname < 保存路径

9、sql(CRUD 增删改查)

         插入一条数据 insert into tableName(字段1,字段2,,,) values(值1,值2,,,)

                     insert into t_stu values(null,'laowang',36);

                    insert into t_py1712 values(uuid(),'laowang',36);

新建一个表主键id设置为字符串类型 可以使用uuid()

                 select * from tableName;

        删除一条数据  delete  from tableName where 条件;

       修改数据 update tableName set 字段1=‘’,字段2=‘’,,, where 条件

                         update t_py1712 set name='xiaoming' where age = 18;

        修改表结构 alter 

                        alter table t_py1712 add className varchar(10) not null; 增加一个字段

                                    alter table t_py1712 drop className; 删除字段

                                    alter table t_py1712 modify column age int default 18 not null;   修改字段


            查询select

                              select name from t_py1712;


                           1、条件查询 

                                    关系运行符 > 、< 、=、>=、<= 、!=或者<>表示不等于

                              where 查询

                                              select * from t_py1712 where age > 23;

                                        select * from t_py1712 where age in(23,20);

                                select * from t_py1712 where age between 20 and 30;

                        and   select * from t_py1712 where name='zhangsan' and age >21;

                            or                select * from t_py1712 where name='zhangsan' or age=21;

                                is     select * from t_py1712 where name is null;

                                    is not null  select * from t_py1712 where name is not null;

                             聚合函数 sum     select sum(age) from t_py1712;

                                                select max(age) from t_py1712;  

                                                 select min(age) from t_py1712;

                                                 select avg(age) from t_py1712;

                         select count(age) from t_py1712;   统计这个表的总记录数

                                      as重命名 select name as n from t_py1712 as t_py;

                          模糊查询  like :            

                                                select * from t_py1712 where name like 'l%';

                                            select * from t_py1712 where name like '%o%';


                                    select * from t_py1712 where name like '_i%';

排序 order by          select* from 表名  where 条件 order by 字段名称 [asc|desc]

                            select * from t_py1712 where name like '%' order by age;

分组 group by      查询部门员工的男女数量       SELECT sex, COUNT(*) from `user` GROUP BY sex

Having 筛选

                SELECT age,COUNT(age) from stu GROUP BY age HAVING COUNT(age)>1;

                  having 是分组后的筛选

去重 distinct        select distinct 字段 from 表名;

                                                                    select distinct sex from t_py1712;


Limit  分页显示

Select * from users limit 0,10 #查询前十条数据

Select * from users  limit (pageNow -1)*pageSize, pageSize

                select * from t_py1712 limit 0,3;

外键 foreign key 完成外键的约束

CONSTRAINT FOREIGN key(新表的字段) REFERENCES  主表(引用字段)

子查询    将一个查询结果作为条件的一部分写入到第二个sql中

如 姓名为zs的用户的部门名称: Select deptname from dept where deptid = (select deptid from emp where empname = ‘zs’)

多表关联—连接查询

内连接查询(inner join)            等值查询        不等值查询           外连接查询(outer join)        左外连接(left join)

右外连接(right join)                自然连接            交叉连接(cross join) # 笛卡尔积                    自连接

字符串函数

length、char_length、trim、substring、ascii、concat、upper、replace

                                                    select length((select name from t_py1712 where age = 22));

数学函数

ceil、floot、round、mod、sin、cos、sqrt

        1、format(x,y)  函数,功能是将一个数字x,保留y位小数,并且整数部分用逗号分隔千分位,小数部分进行四舍五入。

         2、abs();  求一个数的绝对值;absolute

          3、sqrt();求一个数的平方根。sqrt是sqruar(平方,矩形) ,root(根)的缩写。 select sqrt(9); ==3

          4、mod(x,y)  x除数,y被除数。结束是余数。select mod(10,3);===1

          5、ceil()  进一取整。    select ceil(5.1); ===6

                floor()舍一取整     select floor(5.3);===5

                   这两个函数是镜子函数,比较有点意思。这两个函数并不进行四舍五入,比较强硬。

           6、rand()  顾名思义,是用来生成随机数用的。select rand();

            8、truncate(x,y)  比较霸道,不管四舍五入,直接把x,的y位小数直接干掉。 select truncate(1233.154585,3);==1233.154

            9、sign() 返回当前结果得符号,如果是负数返回-1,如果是0 返回0 如果是正数,返回1.

            10、power()  幂运算        select power(5,3);===125


select ceil(5.1);


日期函数

Year、month、week、curdate、curtime、date_format str_to_date、now

SELECT DATE_FORMAT(CURDATE(),'%Y年%m月%d日')

表与表之间的关联关系: 在一对一的关联关系中,外键加在那个表中都行。        1:n   n:1    n:n

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,444评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,421评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,363评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,460评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,502评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,511评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,280评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,736评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,014评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,190评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,848评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,531评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,159评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,411评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,067评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,078评论 2 352

推荐阅读更多精彩内容