当前位置:Gxlcms > 数据库问题 > Linux-数据库1

Linux-数据库1

时间:2021-07-01 10:21:17 帮助过:11人阅读

数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。

关系数据库: MySql ,Oracle, sql server , db2 ,sqlite,

非关系数据库: redis mongodb

so无所谓。。。

 

MySQL数据库

安装

windows上安装略

linux上安装略

启动

端口号3306

设置密码

  1. <span style="color: #008080">1</span> mysqladmin -uroot password <span style="color: #800000">‘</span><span style="color: #800000">123</span><span style="color: #800000">‘</span> <span style="color: #008000">#</span><span style="color: #008000">设置初始密码,初始密码为空因此-p选项没有用</span>
  2. <span style="color: #008080">2</span> mysqladmin -u root -p123 password <span style="color: #800000">‘</span><span style="color: #800000">1234</span><span style="color: #800000">‘</span> <span style="color: #008000">#</span><span style="color: #008000">修改root用户密码</span>

 

 

登录数据库

  1. <span style="color: #008080">1</span> mysql <span style="color: #008000">#</span><span style="color: #008000">本地登录,默认用户root,空密码,用户为root@127.0.0.1</span>
  2. <span style="color: #008080">2</span> mysql -uroot -p1234 <span style="color: #008000">#</span><span style="color: #008000">本地登录,指定用户名和密码,用户为root@127.0.0.1</span>
  3. <span style="color: #008080">3</span> mysql -uroot -p1234 -h 192.168.31.95 <span style="color: #008000">#</span><span style="color: #008000">远程登录,用户为root@192.168.31.95</span>

忘记密码1:从删库到跑路

忘记密码2:越过授权库

 

SQL语句

SQL语句:结构化语句,SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。几乎所有的关系型数据库都有对SQL语句的支持

SQL语句规范:
1、不区分大小写(命令建议大写,原因在于,在SQL解析的过程中,数据库会自动将小写的命令转换成大写,当有大批量SQL语句操作的时候,转换也会产生一定的开销)
2、以分号作为结束符号
3、注释(单行--,多行/* */)

SQL语句操作对象:数据库的操作、数据表的操作、表记录的操作


数据库的操作
1、查看所有的数据库

  1. mysql><span style="color: #000000"> SHOW DATABASES;
  2. </span>+--------------------+
  3. | Database |
  4. +--------------------+
  5. | information_schema |
  6. | mysql |
  7. | performance_schema |
  8. | sakila |
  9. | sys |
  10. | world |
  11. +--------------------+
  12. 6 rows <span style="color: #0000ff">in</span> set (0.00 sec)

 

2、创建数据库(即在磁盘上创建一个对应的文件夹)

语法:create  database  [if not exists]  db_name  [character set xxx];

   命令      可选判断    数据库名   数据库的字符编码

  1. mysql><span style="color: #000000"> CREATE DATABASE IF NOT EXISTS student CHARACTER SET utf8;
  2. Query OK, </span>1 row affected (0.01<span style="color: #000000"> sec)
  3. mysql</span>><span style="color: #000000"> SHOW DATABASES;
  4. </span>+--------------------+
  5. | Database |
  6. +--------------------+
  7. | information_schema |
  8. | mysql |
  9. | performance_schema |
  10. | sakila |
  11. | student |
  12. | sys |
  13. | world |
  14. +--------------------+
  15. 7 rows <span style="color: #0000ff">in</span> set (0.00 sec)

 

3、查询一个数据库的创建方式(创建命令)

语法:show  create  database  db_name ;

   命令          数据库名

  1. mysql><span style="color: #000000"> SHOW CREATE DATABASE student;
  2. </span>+----------+------------------------------------------------------------------+
  3. | Database | Create Database |
  4. +----------+------------------------------------------------------------------+
  5. | student | CREATE DATABASE `student` /*!40100 DEFAULT CHARACTER SET utf8 */ |
  6. +----------+------------------------------------------------------------------+
  7. 1 row <span style="color: #0000ff">in</span> set (0.04 sec)

 

4、修改数据库字符编码

语法:alter  database  db_name  character set gbk;

     命令         数据库名    修改字符编码

  1. mysql><span style="color: #000000"> ALTER DATABASE student CHARACTER SET gbk;
  2. Query OK, </span>1 row affected (0.01<span style="color: #000000"> sec)
  3. mysql</span>><span style="color: #000000"> SHOW CREATE DATABASE student;
  4. </span>+----------+-----------------------------------------------------------------+
  5. | Database | Create Database |
  6. +----------+-----------------------------------------------------------------+
  7. | student | CREATE DATABASE `student` /*!40100 DEFAULT CHARACTER SET gbk */ |
  8. +----------+-----------------------------------------------------------------+
  9. 1 row <span style="color: #0000ff">in</span> set (0.00<span style="color: #000000"> sec)
  10. </span><span style="color: #008000">#</span><span style="color: #008000">注:修改数据库名字,直接找到该数据库文件夹,修改文件夹名字</span>

 

5、删除数据库

  1. mysql><span style="color: #000000"> DROP DATABASE student;
  2. Query OK, 0 rows affected (</span>0.00<span style="color: #000000"> sec)
  3. mysql</span>><span style="color: #000000"> SHOW DATABASES;
  4. </span>+--------------------+
  5. | Database |
  6. +--------------------+
  7. | information_schema |
  8. | mysql |
  9. | performance_schema |
  10. | sakila |
  11. | sys |
  12. | world |
  13. +--------------------+
  14. 6 rows <span style="color: #0000ff">in</span> set (0.00 sec)

 

6、使用数据库(即切换数据库,进入到数据库内)

  1. mysql><span style="color: #000000"> USE mysql;
  2. Database changed
  3. mysql</span>><span style="color: #000000"> SELECT database();
  4. </span>+------------+
  5. | database() |
  6. +------------+
  7. | mysql |
  8. +------------+
  9. 1 row <span style="color: #0000ff">in</span> set (0.00 sec)

 

-- 注意:进入到某个数据库后没办法再退回之前状态,但可以通过use进行切换

查看当前使用的数据库 select database();

 

数据表的操作

表内的列:字段

表内的行:表记录

1、创建一个表(进入库里):最后一个字段不加逗号结束

 语法:create  table  table_name(

      字段名 字段数据类型 [约束] ,
      字段名 字段数据类型 [约束] ,
      字段名 字段数据类型 [约束] ,
      ....
      字段名 字段数据类型 [约束] )  [character set xxx];

约束: (not null + unique就等于主键),约束不止这三个
  主键(primary key):非空 且 唯一
  not null: 非空约束
  unique: 唯一约束

  1. mysql><span style="color: #000000"> CREATE DATABASE teachers;
  2. Query OK, </span>1 row affected (0.00<span style="color: #000000"> sec)
  3. mysql</span>><span style="color: #000000"> USE teachers;
  4. Database changed
  5. mysql</span>><span style="color: #000000"> CREATE TABLE teacher1(
  6. </span>-><span style="color: #000000"> id INT primary key,
  7. </span>-> name VARCHAR(20) <span style="color: #0000ff">not</span><span style="color: #000000"> null,
  8. </span>-><span style="color: #000000"> age INT,
  9. </span>-><span style="color: #000000"> birth DATE);
  10. Query OK, 0 rows affected (</span>0.51 sec)

 

2、查看数据库的表

  1. mysql><span style="color: #000000"> SHOW TABLES;
  2. </span>+--------------------+
  3. | Tables_in_teachers |
  4. +--------------------+
  5. | teacher1 |
  6. +--------------------+
  7. 1 row <span style="color: #0000ff">in</span> set (0.00 sec)

 

3、查看表结构

  1. mysql><span style="color: #000000"> DESC teacher1;
  2. </span>+-------+-------------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. +-------+-------------+------+-----+---------+-------+
  5. | id | int(11) | NO | PRI | NULL | |
  6. | name | varchar(20) | NO | | NULL | |
  7. | age | int(11) | YES | | NULL | |
  8. | birth | date | YES | | NULL | |
  9. +-------+-------------+------+-----+---------+-------+
  10. 4 rows <span style="color: #0000ff">in</span> set (0.00 sec)

 

4、查看创建表命令

  1. mysql><span style="color: #000000"> SHOW CREATE TABLE teacher1;
  2. </span>+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  3. | Table | Create Table |
  4. +----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  5. | teacher1 |<span style="color: #000000"> CREATE TABLE `teacher1` (
  6. `id` int(</span>11<span style="color: #000000">) NOT NULL,
  7. `name` varchar(</span>20<span style="color: #000000">) NOT NULL,
  8. `age` int(</span>11<span style="color: #000000">) DEFAULT NULL,
  9. `birth` date DEFAULT NULL,
  10. PRIMARY KEY (`id`)
  11. ) ENGINE</span>=InnoDB DEFAULT CHARSET=utf8 |
  12. +----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  13. 1 row <span style="color: #0000ff">in</span> set (0.00 sec)

 

5、增加列(字段):可以增加多个列,类似于表创建的格式。

语法:alter  table  tab_name  add  [column]  列名  类型 [完整性约束条件] [first|after 字段名];

     命令       表名    添加     列                   定义列位置,first最前边,after在某个字段之后

  1. mysql><span style="color: #000000"> ALTER TABLE teacher1 ADD COLUMN sex INT;
  2. Query OK, 0 rows affected (</span>0.58<span style="color: #000000"> sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql</span>><span style="color: #000000"> DESC teacher1;
  5. </span>+-------+-------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +-------+-------------+------+-----+---------+-------+
  8. | id | int(11) | NO | PRI | NULL | |
  9. | name | varchar(20) | NO | | NULL | |
  10. | age | int(11) | YES | | NULL | |
  11. | birth | date | YES | | NULL | |
  12. | sex | int(11) | YES | | NULL | |
  13. +-------+-------------+------+-----+---------+-------+

 

注:COLUMN可以省略

  1. mysql> ALTER TABLE teacher1 ADD addr VARCHAR(20<span style="color: #000000">) first;
  2. Query OK, 0 rows affected (</span>0.53<span style="color: #000000"> sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql</span>><span style="color: #000000"> DESC teacher1;
  5. </span>+-------+-------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +-------+-------------+------+-----+---------+-------+
  8. | addr | varchar(20) | YES | | NULL | |
  9. | id | int(11) | NO | PRI | NULL | |
  10. | name | varchar(20) | NO | | NULL | |
  11. | age | int(11) | YES | | NULL | |
  12. | birth | date | YES | | NULL | |
  13. | sex | int(11) | YES | | NULL | |
  14. +-------+-------------+------+-----+---------+-------+
  15. 6 rows <span style="color: #0000ff">in</span> set (0.00 sec)

 

6、修改一列类型

语法:alter  table  tab_name  modify  列名  类型  [完整性约束条件] [first|after 字段名];

  1. mysql><span style="color: #000000"> ALTER TABLE teacher1 MODIFY sex CHAR AFTER id;
  2. Query OK, 0 rows affected (</span>0.82<span style="color: #000000"> sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql</span>><span style="color: #000000"> DESC teacher1;
  5. </span>+-------+-------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +-------+-------------+------+-----+---------+-------+
  8. | addr | varchar(20) | YES | | NULL | |
  9. | id | int(11) | NO | PRI | NULL | |
  10. | sex | char(1) | YES | | NULL | |
  11. | name | varchar(20) | NO | | NULL | |
  12. | age | int(11) | YES | | NULL | |
  13. | birth | date | YES | | NULL | |
  14. +-------+-------------+------+-----+---------+-------+
  15. 6 rows <span style="color: #0000ff">in</span> set (0.00 sec)

 

7、修改列名

语法:alter  table  tab_name  change  [column]  列名  新列名  类型  [完整性约束条件] [first|after 字段名];

  1. mysql><span style="color: #000000"> ALTER TABLE teacher1 CHANGE birth birthday DATE;
  2. Query OK, 0 rows affected (</span>0.12<span style="color: #000000"> sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql</span>><span style="color: #000000"> DESC teacher1;
  5. </span>+----------+-------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +----------+-------------+------+-----+---------+-------+
  8. | addr | varchar(20) | YES | | NULL | |
  9. | id | int(11) | NO | PRI | NULL | |
  10. | sex | char(1) | YES | | NULL | |
  11. | name | varchar(20) | NO | | NULL | |
  12. | age | int(11) | YES | | NULL | |
  13. | birthday | date | YES | | NULL | |
  14. +----------+-------------+------+-----+---------+-------+
  15. 6 rows <span style="color: #0000ff">in</span> set (0.00 sec)

 

8、删除一列
语法:alter  table  tab_name  drop  [column] 列名;

  1. mysql><span style="color: #000000"> DESC teacher1;
  2. </span>+----------+-------------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. +----------+-------------+------+-----+---------+-------+
  5. | addr | varchar(20) | YES | | NULL | |
  6. | id | int(11) | NO | PRI | NULL | |
  7. | name | varchar(20) | NO | | NULL | |
  8. | age | int(11) | YES | | NULL | |
  9. | birthday | date | YES | | NULL | |
  10. +----------+-------------+------+-----+---------+-------+
  11. 5 rows <span style="color: #0000ff">in</span> set (0.00 sec)

 

9、修改表名
语法:rename  table  表名  to  新表名;

  1. mysql><span style="color: #000000"> RENAME TABLE teacher1 to teacher;
  2. Query OK, 0 rows affected (</span>0.14<span style="color: #000000"> sec)
  3. mysql</span>><span style="color: #000000"> DESC teacher1;
  4. ERROR </span>1146 (42S02): Table <span style="color: #800000">‘</span><span style="color: #800000">teachers.teacher1</span><span style="color: #800000">‘</span> doesn<span style="color: #800000">‘</span><span style="color: #800000">t exist</span>
  5. mysql><span style="color: #000000"> DESC teacher;
  6. </span>+----------+-------------+------+-----+---------+-------+
  7. | Field | Type | Null | Key | Default | Extra |
  8. +----------+-------------+------+-----+---------+-------+
  9. | addr | varchar(20) | YES | | NULL | |
  10. | id | int(11) | NO | PRI | NULL | |
  11. | name | varchar(20) | NO | | NULL | |
  12. | age | int(11) | YES | | NULL | |
  13. | birthday | date | YES | | NULL | |
  14. +----------+-------------+------+-----+---------+-------+
  15. 5 rows <span style="color: #0000ff">in</span> set (0.00 sec)

 

10、修该表所用的字符集
语法:alter  table  表名  character  set  编码;

  1. mysql><span style="color: #000000"> ALTER TABLE teacher CHARACTER SET gbk;
  2. Query OK, 0 rows affected (</span>0.09<span style="color: #000000"> sec)
  3. Records: 0 Duplicates: 0 Warnings: 0
  4. mysql</span>><span style="color: #000000"> SHOW CREATE TABLE teacher;
  5. </span>+---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6. | Table | Create Table |
  7. +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  8. | teacher |<span style="color: #000000"> CREATE TABLE `teacher` (
  9. `addr` varchar(</span>20<span style="color: #000000">) CHARACTER SET utf8 DEFAULT NULL,
  10. `id` int(</span>11<span style="color: #000000">) NOT NULL,
  11. `name` varchar(</span>20<span style="color: #000000">) CHARACTER SET utf8 NOT NULL,
  12. `age` int(</span>11<span style="color: #000000">) DEFAULT NULL,
  13. `birthday` date DEFAULT NULL,
  14. PRIMARY KEY (`id`)
  15. ) ENGINE</span>=InnoDB DEFAULT CHARSET=gbk |
  16. +---------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  17. 1 row <span style="color: #0000ff">in</span> set (0.00 sec)

 

11、删除除表

语法:drop table table_name

  1. mysql><span style="color: #000000"> DROP TABLE teacher;
  2. Query OK, 0 rows affected (</span>0.19<span style="color: #000000"> sec)
  3. mysql</span>><span style="color: #000000"> SHOW TABLES;
  4. Empty set (</span>0.00 sec)

 

 

补充:MySQL表数据类型

MySQL支持多种数据类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型

数值类型

技术分享

 

日期/时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

技术分享

 

字符串类型

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

技术分享

CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。

BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。

有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。

 

表记录的操作:下一天

 

Linux-数据库1

标签:忘记密码   通过   0.00   db2   lob   mat   不同   linux   logs   

人气教程排行