文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Mysql的基本概念

2023-09-20 13:14

关注

1、数据(data)

2、表

3、数据库

4、数据库管理系统

数据库的建立和维护功能、数据定义功能、数据操纵功能、数据库的运行管理功能、通信功能

5、数据库系统

1、第一代数据库

2、第二代数据库

3、第三代数据库

1、SQL Server (微软公司产品)

2、Oracle (甲骨文公司产品)

3、DB2 (IBM 公司产品)

4、MySQL (甲骨文公司收购)

5、数据库

6、关系型数据库

7、非关系型数据库介绍

8、非关系型数据库典型代表

数据名作用
int整型 无符号【0,232-1】,有符号【-231,2^32-1】
float单精度浮点 4字节32位
double双精度浮点 8字节64位
char固定长度的字符类型
varchar可变长度字符类型
text文本
image图片
decimal(5,2)五个有效长度数字,小数点后面有2位

1、查看当前服务器中的数据库

show databases;
mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || bbs                || mysql              || performance_schema || sys                || tour               |+--------------------+6 rows in set

2、查看数据库中的表

use 数据库名;show tables;/show tables form 数据库;
mysql> use tour;Database changedmysql> show tables    -> ;+----------------+| Tables_in_tour |+----------------+| sunsetglow     |+----------------+1 row in set

3、查看表的结构 ( 字段 )

use 数据库名;desc 表名;
mysql> use tour;Database changedmysql> desc sunsetglow    -> ;+-------+---------+------+-----+---------+-------+| Field | Type    | Null | Key | Default | Extra |+-------+---------+------+-----+---------+-------+| id    | int(11) | YES  |     | NULL    |       || name  | char(4) | YES  |     | NULL    |       || age   | int(11) | YES  |     | NULL    |       || sex   | char(2) | YES  |     | NULL    |       |+-------+---------+------+-----+---------+-------+4 rows in set

4、SQL 语句

5、SQL 语言分类

6、创建及删除数据库和表

create database 数据库名;
mysql> create database sun;Query OK, 1 row affected (0.00 sec)
create table 表名 (字段1 数据类型,字段2 数据类型【......】【,primary key(主键名)】);
mysql> create table kiki (id int not null,name char(10) not null,sorce decimal(5,2),primary key(id));Query OK, 0 rows affected (0.01 sec)mysql> show tables;+----------------+| Tables_in_tour |+----------------+| kiki           || moon           || stars          || sunset         |+----------------+4 rows in set (0.00 sec)

7、修改表名和表结构

alter table 旧的表名    rename   新的表名
mysql> use tourReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> alter table sunsetglow rename sunset;Query OK, 0 rows affected (0.01 sec)
alter  table  表名  add   字段   数据类型  default ' 默认值' ;
mysql> alter table kiki add address varchar(50) default 'none';Query OK, 0 rows affected (0.01 sec)Records: 0  Duplicates: 0  Warnings: 0
alter table 表名  change 旧列名 新列名 数据类型 [unique key];
mysql> alter table kiki change name student varchar(20) unique key;Query OK, 0 rows affected (0.01 sec)Records: 0  Duplicates: 0  Warnings: 0mysql> desc kiki;+---------+--------------+------+-----+---------+-------+| Field   | Type         | Null | Key | Default | Extra |+---------+--------------+------+-----+---------+-------+| id      | int(11)      | NO   | PRI | NULL    |       || student | varchar(20)  | YES  | UNI | NULL    |       || sorce   | decimal(5,2) | YES  |     | NULL    |       || address | varchar(50)  | YES  |     | none    |       |+---------+--------------+------+-----+---------+-------+4 rows in set (0.00 sec)

8、DML 用于管理表数据

insert into 表名 (字段1, 字段2, ...)  values (字段1的值, 字段2的值, ...);insert into 表名  values (按照字段顺序的所有字段的值);例:insert into sunset (id,name,score,passwd) values (2,'xu',80,'123456');
delete from 表名 where 条件表达式;例:delete from sunset where id=4;
update 表名 set 字段=值, ...  where 条件表达式;例:update sunset set name='xu',score='99'where id=3;
select 字段1,字段2,...  from 表名 where 条件表达式;select * from 表名\Gselect * from 表名 limit N;           显示表前N行select * from 表名 limit N,M;         显示从第N行之后的M行记录(不包含第N行)例:select name number from sunset;select name number from sunset where id=2;select * from sunset limit 2;select * from sunset limit 2,3;

9、修改表结构

 alter table 旧表名  rename 新表名;  例:alter table sunset rename wen;
alter table 表名 add 新字段 数据类型 字段属性;例:alter table xu add address varchar(50) default'fire';
 alter table 表名 change 旧字段名  新字段名  数据类型  字段属性;  例:alter table xu change xiaoxu use_name varchar(10) unique key;
 alter table 表名 drop 字段名;  例:alter table xu drop address;

1.克隆表

create table 新表 like 源表;insert into 新表 (select * from 源表);     数据一样,表结构一样create table 新表 (select * from 源表);    数据一样,表结构可能不一样
mysql> create table moon like sunsetglow;Query OK, 0 rows affectedmysql> insert into moon select * from sunsetglow;Query OK, 12 rows affectedRecords: 12  Duplicates: 0  Warnings: 0mysql> select * from moon;+----+--------+-----+-----+| id | name   | age | sex |+----+--------+-----+-----+|  1 | 张源泉 |  56 | 男  ||  2 | 李凯丽 |  25 | 女  ||  3 | 伍连德 |  55 | 男  ||  4 | 吴珊珊 |  25 | 女  ||  5 | 张三   |  55 | 男  ||  6 | 李思   |  61 | 男  ||  7 | 王武   |  50 | 男  ||  8 | 黄丽丽 |  52 | 女  ||  9 | 王鹏鹏 |  66 | 男  || 10 | 李思思 |  72 | 女  || 11 | 章萍   |  51 | 女  || 12 | 梅芳   |  58 | 女  |+----+--------+-----+-----+12 rows in set

2、清空表

delete from 表名;        一条一条的删除,效率较慢,自增长字段仍然会按照清空前的顺序自增truncate table 表名;     直接重置表,清空效率快,自增长字段会从1重新开始
mysql> delete from moon;Query OK, 12 rows affectedmysql> select * from moon;Empty setmysql> truncate table moon;Query OK, 0 rows affectedmysql> select * from moon;Empty set

3、临时表

create temporary table 表名 (....);   临时表只能在当前会话中有效,且退出当前会话则会失效
mysql> create temporary table light(    -> id int(4) zerofill primary key auto_increment    -> ,name varchar(10) not null,    -> cardid int(18) not null unique key,    -> hobby varchar(50)) ;Query OK, 0 rows affected

4、外键约束 ( 了解即可 )

alter table 表名 add primay key (主键字段);
alter table 表名 [constraint FK_外键别名] add foreign key (外键字段) references 主键表名 (主键字段);

1、用户管理

create user  '用户名'@'源地址'    identified by '密码';                     
mysql> create user 'xiaoxu'@'localhost' identified by'123456';Query OK, 0 rows affectedmysql> select password('abc123');+-------------------------------------------+| password('abc123')                        |+-------------------------------------------+| *6691484EA6B50DDDE1926A220DA01FA9E575C18A |+-------------------------------------------+1 row in set
drop  user  '用户名'@'源地址';
mysql> drop user 'xiaowen'@'localhost';Query OK, 0 rows affected
rename user  '旧用户名'@'源地址'  to  '新用户名'@'源地址';set password [for '用户名'@'源地址'] = password('.....');
mysql> rename user 'xiaoxi'@'localhost' to 'xiaowen'@'localhost';Query OK, 0 rows affectedmysql> set password = password('abc123');Query OK, 0 rows affectedmysql> set password for 'xiaoxu'@'localhost' = password('abc123');Query OK, 0 rows affected
use mysql;select user,host,authentication_string from mysql.user;
mysql> use mysql;Database changedmysql> select user,host,authentication_string from mysql.user;+---------------+-----------+-------------------------------------------+| user          | host      | authentication_string                     |+---------------+-----------+-------------------------------------------+| root          | localhost | *6691484EA6B50DDDE1926A220DA01FA9E575C18A || mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || bbsadmin      | %         | *01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C || localhost     | %         | *01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C || root          | %         | *6691484EA6B50DDDE1926A220DA01FA9E575C18A || xiaoxu        | localhost | *6691484EA6B50DDDE1926A220DA01FA9E575C18A || xiaoxu        | %         | *6691484EA6B50DDDE1926A220DA01FA9E575C18A |+---------------+-----------+-------------------------------------------+8 rows in set

2、找回 root 密码

[root@www ~]# vim /etc/my.cnfskip-grant-tables#添加,使登录mysql不使用授权表
[root@www ~]# systemctl restart mysqld.service 
mysql> update mysql.user set authentication_string = password('abc123') where user='root';Query OK, 0 rows affected, 1 warning (0.00 sec)Rows matched: 2  Changed: 0  Warnings: 1mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> quit
[root@www ~]# mysql -u root -pabc123

3、权限管理

grant 权限1,权限2,... on  库名.表名 to '用户名'@'源地址' [identified by '密码'];grant all ,... on  库名.表名  to  *.* [identified by '密码'];      
[root@www ~]# mysql -uroot -pabc123mysql> grant select on tour.* to 'xiaoxu'@'localhost' identifmysql> grant select on tour.* to 'xiaoxu'@'localhost' identified by 'abc123';Query OK, 0 rows affected, 2 warnings (0.00 sec)mysql> grant all [privileges] on *.* to 'xiaoxu'@'%' identified by 'abc123';ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[privileges] on *.* to 'xiaoxu'@'%' identified by 'abc123'' at line 1mysql> grant all on *.* to 'xiaoxu'@'%' identified by 'abc123';Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)mysql> quit
show grants for '用户名'@'源地址';
mysql> show grants for 'xiaoxu'@'%';+---------------------------------------------+| Grants for xiaoxu@%                         |+---------------------------------------------+| GRANT ALL PRIVILEGES ON *.* TO 'xiaoxu'@'%' |+---------------------------------------------+1 row in set (0.00 sec)
revoke 权限1,权限2,... on  库名.表名 from '用户名'@'源地址';revoke all ,... on  库名.表名 from '用户名'@'源地址';
mysql> revoke all on *.* from 'xiaoxu'@'%';Query OK, 0 rows affected (0.00 sec)

来源地址:https://blog.csdn.net/2301_76858832/article/details/131239384

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯