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

你可能感兴趣的:(sql -------- mysql ---->免费开源的关系型数据库)