xml地图|网站地图|网站标签 [设为首页] [加入收藏]
Sql_server基本操作,where关键字的区别
分类:数据库

使用Sql_server创建表,视图,触发器,存储过程,函数等基本操作。

创建两张表并插入一些数据

  1. ###  下载并安装MySQL官方的 Yum Repository

    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
    

    在当前目录下会生成rpm文件

    图片 1

  2. ### 使用yum安装

    yum -y install mysql57-community-release-el7-10.noarch.rpm
    yum -y install mysql-community-server
    

     等待一段时间MySQL就安装完成了,然后是对MySQL的一些设置。

  3. ### 修改root密码

    安装成功后默认会创建一个root用户,并携带一个初始密码,需要修改初始密码,启动mysql

    systemctl start mysqld.service
    

    在Mysql的日志找出初始密码,命令如下

    grep "password" /var/log/mysqld.log
    

    图片 2

    通过下面的命令进入数据库

    mysql -uroot -p
    

    图片 3

    在mysql客户端连接环境下执行修改密码命令

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new@password';
    

    此时密码修改成功,重启mysql服务

    systemctl restart mysqld.service
    
  4. ###   修改字符集为UTF-8

    通过命令 mysql -uroot -p 进入Mysql,注意是新密码,在mysql环境下通过如下命令查看字符集

    show variables like '%character%';
    

    图片 4

    我们看到上面的字符集不都是utf-8,现在我们在bash终端打开mysql配置文件

    vi /etc/my.cnf
    

    根据实际情况添加以下配置项

    #add by tangxiaobai
    character-set-server=utf8
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    

    图片 5

    重启服务器,查看字符集有没有修改成功

    图片 6

    我们看到字符集修改成功

  5. ### 设置mysql支持远程连接

    到现在为止,我们的Mysql还不能远程连接访问,这里我们用的是该表法,登录mysql命令客户端,执行以下命令

    use mysql;
    update user set host = '%' where user = 'root';
    

    Sql_server基本操作,where关键字的区别。重启Mysql服务,用客户端连接工具测试

    图片 7

    我们看到mysql连接测试成功。

    但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

    yum -y remove mysql57-community-release-el7-10.noarch
    

 

create table class(
  class_id int,
  class_name varchar(20),
  class_grade char(1)
);

insert into class values (1,'语文','A');
insert into class values (2,'数学','B');
insert into class values (3,'英语','C');

create table score(
  class_id int,
  stu_id varchar(20),
  Score int
);

insert into score values (1,'A001',91);
insert into score values (2,'A001',95);
insert into score values (1,'A002',82);
insert into score values (2,'A002',87);
insert into score values (3,'B003',65);
create table test1(                  /* 创建一个表 */
    num int
)   

alter table test1                    /* 修改表 */
alter column num int not null        /* 修改某一列 */


alter table test1                    /* 修改表 */
add constraint pk_num                /* 添加约束 */
primary key(num);                    /* 主键约束 */


create trigger insert_test1          /* 创建触发器 */
on test1 for insert                  /* 当test1有添加数据时触发 */
as                                   /* as 以后时sql语句 */
begin
    print 'success!'
end

select * into test1Bak               /* 创建备份表 */
from test1
where 1 = 2                          /* 备份为空表 */



create view s1                      /* 创建视图 s1 */
        as                           /* 注意,这个as不可省略 */    
        select *from jk


create proc procSumByPurchase                
    @Gname nvarchar(50),                           /* 指定多个参数 */
    @name nvarchar(50),
    @num int output                                /* 输出参数 */
as
begin
    select @num = (
        select sum(s.Sell_num)
        from Sell s inner join Goods g
        on g.Goo_no = s.Goo_no
        group by g.Goo_name, s.Sell_date, g.Pro_name
        having g.Goo_name = @name
        and g.Pro_name = @Gname
        and    year(s.Sell_date) = 2018            /* date筛选年份 */
        and month(s.Sell_date) = 1                 /* date筛选月份 */
    )
end

declare @num1 int                        
exec procSumByPurchase '联想公司', '拯救者15.6英寸轻薄游戏本', @num1 output
select 'SumNum' = str(@num1)                    /* 将返回的 int 型转变成 字符串 */



create function Purchase_Total(@start datetime,        /* 自定义函数 */
    @last datetime)                                    /* 可多个参数 */
    returns table                                      /* 返回值类型,这里为表格 */
as                                                     /* as以后为 sql 语句 */
    return(                                            /* 最后为返回类型 */
        select *
        from Purchase p
        where p.Pur_date >= @start
        and p.Pur_date <= @last
    )

 

 

查看表中的数据

mysql> select * from class;
+----------+------------+-------------+
| class_id | class_name | class_grade |
+----------+------------+-------------+
|        1 | 语文       | A           |
|        2 | 数学       | B           |
|        3 | 英语       | C           |
+----------+------------+-------------+
3 rows in set (0.00 sec)

mysql> select * from score;
+----------+--------+-------+
| class_id | stu_id | Score |
+----------+--------+-------+
|        1 | A001   |    91 |
|        2 | A001   |    95 |
|        1 | A002   |    82 |
|        2 | A002   |    87 |
|        3 | B003   |    65 |
+----------+--------+-------+
5 rows in set (0.00 sec)

mysql>

Sql_server基本操作,where关键字的区别。 

Sql_server基本操作,where关键字的区别。比较下面几组查询结果
--如果你对left join足够熟悉的话,先不要看结果,是否可以直接说出下面查询的结果

mysql> select * from class A left join score B on A.class_id=B.class_id;
+----------+------------+-------------+----------+--------+-------+
| class_id | class_name | class_grade | class_id | stu_id | Score |
+----------+------------+-------------+----------+--------+-------+
|        1 | 语文       | A           |        1 | A001   |    91 |
|        2 | 数学       | B           |        2 | A001   |    95 |
|        1 | 语文       | A           |        1 | A002   |    82 |
|        2 | 数学       | B           |        2 | A002   |    87 |
|        3 | 英语       | C           |        3 | B003   |    65 |
+----------+------------+-------------+----------+--------+-------+
5 rows in set (0.00 sec)

mysql> select * from class A left join score B on A.class_id=B.class_id and 1=1;
+----------+------------+-------------+----------+--------+-------+
| class_id | class_name | class_grade | class_id | stu_id | Score |
+----------+------------+-------------+----------+--------+-------+
|        1 | 语文       | A           |        1 | A001   |    91 |
|        2 | 数学       | B           |        2 | A001   |    95 |
|        1 | 语文       | A           |        1 | A002   |    82 |
|        2 | 数学       | B           |        2 | A002   |    87 |
|        3 | 英语       | C           |        3 | B003   |    65 |
+----------+------------+-------------+----------+--------+-------+
5 rows in set (0.01 sec)

mysql> select * from class A left join score B on A.class_id=B.class_id and 1=0;
+----------+------------+-------------+----------+--------+-------+
| class_id | class_name | class_grade | class_id | stu_id | Score |
+----------+------------+-------------+----------+--------+-------+
|        1 | 语文       | A           |     NULL | NULL   |  NULL |
|        2 | 数学       | B           |     NULL | NULL   |  NULL |
|        3 | 英语       | C           |     NULL | NULL   |  NULL |
+----------+------------+-------------+----------+--------+-------+
3 rows in set (0.00 sec)

mysql> select * from class A left join score B on 1=0;
+----------+------------+-------------+----------+--------+-------+
| class_id | class_name | class_grade | class_id | stu_id | Score |
+----------+------------+-------------+----------+--------+-------+
|        1 | 语文       | A           |     NULL | NULL   |  NULL |
|        2 | 数学       | B           |     NULL | NULL   |  NULL |
|        3 | 英语       | C           |     NULL | NULL   |  NULL |
+----------+------------+-------------+----------+--------+-------+
3 rows in set (0.00 sec)

mysql> left join的最重要特点是:不管on后面是什么条件,都会返回左表中的所有行!

本文由澳门新葡亰手机版发布于数据库,转载请注明出处:Sql_server基本操作,where关键字的区别

上一篇:没有了 下一篇:死锁查询,sql最简易的查询语句
猜你喜欢
热门排行
精彩图文