MySQL 对象的介绍及基本操作

目录

1介绍:

        1.1数据库对象命名规则:

        1.2对象分类:

2. 表的基本操作:

        2.1表的类型:

                2.1.1: MyISAM(一种引擎):

                2.1.2: InnoDB(默认的存储引擎):

        2.2 创建表 

        2.3 查看表:

        2.4 删除表:

        2.5:修改表结构:

        2.6复制表的结构:

        2.7 表的约束 :

                     1.分类:           

                      2.创建约束

                      3.删除约束:

                      4.自动增长和默认值:

3.用户授权:

        3.1密码策略:

                  3.1.1查看数据库当前密码策略:

                  3.1.2 查看密码插件:

                  3.1.3 更改策略:

        3.2 授权和撤销授权

                3.2.1 授权:

                3.2.2 移除:

                3.2.3 创建用户:

4 练习: 

​编辑


1介绍:

        1.1数据库对象命名规则:

                    必须以字母开头 可包括数字和三个特殊字符(# _ $) 不要使用MySQL的保留字 同                         一 Schema下的对象不能同名

        1.2对象分类:

                表:基本的数据存储对象 以行和列的方式存在  列就是字段  行就是记录

                约束:执行数据的校验 保存数据的完整性

                数据字典:系统表  存放数据库的相关信息

                视图:一个或者多个数据表的逻辑显示

                索引:用于提高查询的性能

2. 表的基本操作:

        2.1表的类型:

                2.1.1: MyISAM(一种引擎):

                        r.frm # 描述表结构文件,字段长度等, frame框架

                        .MYD # 数据信息文件,存储数据信息 (如果采用独立表存储模式) data

                        .MYI # 索引信息文件,index

                2.1.2: InnoDB(默认的存储引擎):

                        t.frm:存储列相关信息,描述表结构文件,字段长度等

                        t.ibd:数据行+索引,如果采用独立表存储模式,data\a中还会产生b.ibd文件     (存                           储数据信息和索引信 息)  

               二者区别可见:MyISAM和InnoDB的区别_innodb和myisam有什么区别_牛牛的Java学习之旅的博客-CSDN博客

        2.2 创建表 

                语法:CREATE TABLE 表名( 列名 列类型, 列名 列类型 );

        2.3 查看表:

                语法:SHOW TABLES[FROM 数据库名][LIKE wild];  //显示当前数据库已有的数据表                       信息

                DESCRIBE:  查看数据库中的各列信息

                        {DESCRIBE|DESC}表名[列名];

                        show columns from 表名称;  //表名后加上\G 可以查看更全面的表定义信息

        2.4 删除表:

                        语法: DROP TABLE [IF EXISTS] 表名; //删除指定的表  if判断是否存在

        2.5:修改表结构:

                        1:修改列类型: ALTER TABLE 表名 MODIFY 列名 列类型;

                        2:增加列:ALTER TABLE 表名 ADD 列名 列类型;

                        3:删除列: ALTER TABLE 表名 DROP 列名;

                        4:列改名:ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;

                        5:更改表名: ALTER TABLE 表名 RENAME 新表名;

                                                 RENAME TABLE 表名 TO 新表名;

        2.6复制表的结构:

                        1.create table 新表名 like 源表    //可以将源表的表结构复制到新表中

                        2.create table 新表名 select * from 源表   //可以实现表结构的复制,甚至可以将源                                                                                               表的表 记录拷贝到新表中。

                        3:insert into 表 select * from 原表;   //如果已经存在一张结构一致的表,复制数据

        2.7 表的约束 :

                            约束是在表上强制执行的数据校验规则。约束主要用于保证数据库的完整                                        性。当表中数据有相互依赖性 时,可以保护相关的数据不被删除。

                      1.分类:           

                                         NOT NULL非空:确保字段值不允许为空

                                        UNIQUE Key唯一键 :唯一性约束条件确保所在的字段或者字段组合不                                                                                  出现重复值

                                        PRIMARY KEY主键 :主键从功能上看相当于非空且唯一 一个表中只允                                                                               许一个主键 主键是表中唯一确定一行数据的字段

                                        FOREIGN KEY外键:外键是构建于一个表的两个字段或者两个表的两                                                                              个字段之间的关系

                                        CHECK检查:

                        2.创建约束

                                        在建表的同时创建约束:

                                        CREATE TABLE tb_student( id INT PRIMAR KEY  AUTO_INCREMENT,

                                         NAME VARCHAR(18)  NOT NULL )

                                        建表后创建约束(修改表):

                                         alter table 表名 add constraint 约束名 约束类型(要约束的列名)

                        3.删除约束:

                                        删除NOT NULL约束:

                                                alter table 表名 modify 列名 类型;

                                        删除UNIQUE约束:

                                                alter table 表名 drop index 惟一约束名;

                                        删除PRIMARY KEY约束:

                                                alter table 表名 drop primary key;

                                        删除FOREIGN KEY约束:

                                                alter table 表名 drop foreign key 外键名:

                            4.自动增长和默认值:

                                        auto_increment :自动增长

                                                为新的行产生唯一的标识 一个表只能优一个auto_increment,且该                                                  属性必须为主键的一部分。auto_increment的属性可以是 任何整数                                                  类型

3.用户授权:

        3.1密码策略:

                        MySQL安装时为root用户随机生成了一个密码,打印在error_log中,关于error_log                          的位置,如果安装的是 RPM包,则默认是 /var/log/mysqld.log 。

                        awk '/temporary password/ {print $NF}' /var/log/mysqld.log

                  3.1.1查看数据库当前密码策略:

                        show VARIABLES like "%password%";

                  3.1.2 查看密码插件:

                        SHOW VARIABLES LIKE 'validate_password%';

                  3.1.3 更改策略:

                        更改密码策略为LOW,改为LOW或0

                                mysql> SET GLOBAL validate_password_policy='LOW';

                        更改密码长度

                                mysql> SET GLOBAL validate_password_length=0

                        设置大小写、数字和特殊字符均不要求。

                                mysql> SET GLOBAL validate_password_special_char_count=0;

                                mysql> SET GLOBAL validate_password_mixed_case_count=0;

                                mysql> SET GLOBAL validate_password_number_count=0;

                         查看:

                                mysql> SET GLOBAL validate_password_length=0;

                                mysql> SHOW VARIABLES LIKE 'validate_password%';

        3.2 授权和撤销授权

                3.2.1 授权:

                                语法格式: grant 权限列表 on 库名.表名 to 用户名@'客户端主机' [identified                                                       by '密码' with option参数];

                                grant select on testdb.* to common_user@'%'

                                grant insert on testdb.* to common_user@'%'

                                grant create on testdb.* to developer@'192.168.0.%';

                                grant alter on testdb.* to developer@'192.168.0.%';

                                show grants; -- 查看当前用户(自己)权限

                                show grants for dba@localhost;

                3.2.2 移除:

                                revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可

                                revoke all on *.* from dba@localhost;

                3.2.3 创建用户:

                                CREATE USER user1@’localhost’ IDENTIFIED BY ‘123456’;

                                GRANT SELECT ON *.* TO user3@’localhost’ IDENTIFIED BY ‘123456’;

4 练习: 

        

mysql> create database Market;    //创建数据库
Query OK, 1 row affected (0.00 sec)

mysql> use Market;
Database changed

//创建表 约束
mysql> create table customers(c_num int(11) primary key auto_increment not null UNIQUE Key,
    -> c_name varchar(50),
    -> c_city varchar(50),
    -> c_birth datetime not null);
Query OK, 0 rows affected (0.00 sec)  

//添加字段  默认最后  可以指定字段后面  用after
mysql> alter table customers add c_contact varchar(50);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

//更改字段  
mysql> alter table customers change c_contact c_phone varchar(50);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
//更改字段类型
mysql> alter table customers modify  c_name varchar(70);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0
//添加字段
mysql> alter table customers add c_gender char(1);
Query OK, 0 rows affected (0.13 sec)
Records: 0  Duplicates: 0  Warnings: 0
//更改表名
mysql> alter table customers rename customers_info;
Query OK, 0 rows affected (0.00 sec)
//删除字段
mysql> alter table customers_info drop c_city;
Query OK, 0 rows affected (0.17 sec)
Records: 0  Duplicates: 0  Warnings: 0
//修改存储引擎
mysql> alter table customers_info engine = MyISAM;
Query OK, 0 rows affected (0.00 sec)

mysql> alter table customers_info engine = MyIsAM; 
Query OK, 0 rows affected (0.00 sec)

//创建外键时 字段类型需要一样  存储方式也一样
mysql> create table orders( o_num int(11) primary key auto_increment, o_data date, c_id int(11), constraint `links` foreign key(c_id) references customers_info(c_num));
Query OK, 0 rows affected (0.38 sec)

//删除外键连接
mysql> alter table orders drop foreign key links;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

//删除表
mysql> drop table customers_info;
Query OK, 0 rows affected (0.33 sec)

//创建表
mysql> create table player( playid int primary key, playname varchar(30) not null, teamnum int not null unique, info varchar(50));
Query OK, 0 rows affected (0.32 sec)

//创建用户
mysql>create user accountl@localhost identified by 'oldpwdl';

//用户权限设置
mysql> grant select on Team.player to accountl@localhost;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> grant insert on Team.player to accountl@localhost;
Query OK, 0 rows affected (0.01 sec)

mysql> grant update(info) on Team.player to accountl@localhost;
Query OK, 0 rows affected (0.00 sec)

//更改用户密码
mysql> alter user accountl@localhost identified by 'newpwd2';
Query OK, 0 rows affected (0.00 sec)

//刷新权限表
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

//查看用户权限
mysql> show grants for accountl@localhost;
+----------------------------------------------------------------------------------+
| Grants for accountl@localhost                                                    |
+----------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'accountl'@'localhost'                                     |
| GRANT SELECT, INSERT, UPDATE (info) ON `Team`.`player` TO 'accountl'@'localhost' |
+----------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

//移除用户权限
mysql> use mysql
mysql> revoke select on Team.player from accountl@'localhost';
mysql> revoke insert on Team.player from accountl@'localhost';
mysql> revoke update(info) on Team.player from accountl@'localhost';

//删除用户
mysql> drop user accountl@'localhost';

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中对JSON的基本操作主要包括合并JSON数据、创建JSON数组形式和JSON对象的数据、创建JSON类型的字段以及修改JSON数据。 合并JSON数据可以使用函数JSON_MERGE(json_doc, json_doc[, json_doc] …),其中json_doc表示要合并的JSON数据。 创建JSON数组形式的数据可以使用函数JSON_ARRAY([val[, val] …]),其中val表示要添加到JSON数组中的值。创建JSON对象形式的数据可以使用函数JSON_OBJECT([key, val[, key, val] …]),其中key表示键,val表示值。 在MySQL 5.7版本开始,可以直接设置字段类型为json类型来存储JSON数据。例如,可以创建一张名为test_user的表,并设置一个名为data的字段类型为json: CREATE TABLE `test_user`(`id` INT PRIMARY KEY AUTO_INCREMENT, `data` JSON); 修改JSON数据的方法包括在JSON数组后增加新的数据和在JSON数组中插入新的数据。可以使用函数JSON_ARRAY_APPEND(json_doc, path, val[, path, val] …)在JSON数组后增加新的数据,其中json_doc表示要修改的JSON数据,path表示要添加数据的路径,val表示要添加的值。可以使用函数JSON_ARRAY_INSERT(json_doc, path, val[, path, val] …)在JSON数组中插入新的数据,其中json_doc表示要修改的JSON数据,path表示要插入数据的路径,val表示要插入的值。 通过以上方法,可以对MySQL中的JSON数据进行基本操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值