数据库01

mac2022-06-30  26

一、MySQL服务得搭建

1.安装MySQL压缩包并解压

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz

之后yum -y install mysql-server 发现无可用安装包

这时需要MySQL的repo源:wget mysql-community-release-el7-5.noarch.rpm 

之后安装:rpm -ivh mysql-community-release-el7-5.noarch.rpm 

再运行yum -y install mysql-server即可安装,安装完成后,启动MySQL服务:systemctl  start mysqld

也可以设置开机自启

服务启动后,会自动创建名为mysql的所属主和所属组

(如果安装mysql-server服务时使用了数字密钥认证,就可以直接登录数据库)

2.使用初始密码连接服务,初始密码在日志文件:/var/log/mysqld.log下

3.修改初始密码:alter user root@"localhost" identfied by "密码"

4.使用新密码登录: mysql -hlocalhost -uroot -p"密码"

可以修改密码策略:

show variables like "%password%"来查看密码策略(这里是不需密码登录的状态)

mysql> show variables like "%password%"; +--------------------------------+-------+ | Variable_name | Value | +--------------------------------+-------+ | disconnect_on_expired_password | ON | | old_passwords | 0 | | report_password | | +--------------------------------+-------+ 3 rows in set (0.01 sec)

 

之后在命令行执行set global  策略=值是临时,选择在配置文件/etc/my.cnf 中修改

vim /etc/my.cnf

[mysqld]下来配置

二、管理库基本命令

2.1基本库命令

1.show databases; 显示已有得库

2、select user(); 显示连接用户

mysql> select user(); +----------------+ | user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.31 sec)

3、select database();显示当前所在库

4、create database 库名; #创建新库

5、use 库名 #切换到库下,相当于cd

mysql> use abc123 Database changed mysql> select database(); +------------+ | database() | +------------+ | abc123 | +------------+ 1 row in set (0.00 sec)

6.show tabels; #显示所有表

7、drop database 库名; #删除库

2.2基本表命令

1.建表

ysql> create table abc123.stuinfo(name char(15),fromadrr char(15)); Query OK, 0 rows affected (1.64 sec)

2.查看表结构,desc 库名.表名;

3.select *from 库名.表名 ;  #查看表记录

mysql> select *from abc123.stuinfo;

+----------+----------+

| name     | fromadrr |

+----------+----------+

| zhangsan | beijing  |

| lisi     | beijing  |

+----------+----------+

 

4.insert into 库名.表名 values(值列表);(字符类型要用“ ”括上)

   insert into abc123.stuinfo values("zhangsan","beijing"),("lisi","nanjin");

5.updata 库名.表名 set 字段=值 #修改表记录

  update abc123.stuinfo set fromadrr="beijing";

6、delete form 表名;#修改表记录

  delete from stuinfo;

三、MySQL的数据类型

字符型:

 1.定长(固定长度)char

  —最大字符个数255

  —不够字符个数时,右边用空格补齐

  —超过指定长度时,无法写入数据

 2.变长:varchar 

  —根据存储空间的大写分配存储空间

  —超过指定的长度时,无法写入数据

  —最大长度65532

 3、大文本:(音乐,视频等)(blob/text)

  —字符存储超过65535时使用

生产环境中一般使用char 或varchar,char 类型不指定宽度时默认值为1   varchar 不允许不指定宽度

字符类型要使用双引号引上。

数值型

1.整型:

 

2.浮点型:

  单精度            双精度

  float              double

   格式一:   字段名: 类型

   格式二:   字段名 :类型(宽度,小数位数)

 

 

3.日期时间类型

 

*dateime

—范围: 1000-01-01    00:00:00 ~ 9999-12-31   23:59:59   

—格式:yyyymmddhhmmss

*timestamp

—范围: 1970-01-01    00:00:00 ~ 2038-01-19   00:00:00 

—格式:yyyymmddhhmmss

*日期 date 

—范围:0001-01-01~9999-12-31

—格式:yyyymmdd

*年  year

——1901~2155

—格式:yyyy

*时间 time

—格式:HH:MM:SS

 ###########################################################

关于日期的时间字段:当未给timestamp赋值时,自动以当前系统时间默认赋值,而当datetime没有赋值时,默认为null

year默认四位赋值,当使用两位时 01~69 为2001~2069           70~99时为1970~1999

#############################################################

 

 

 

 其中,select curtime();   

    select curdate();   

    select  now();是用来获得当前时间的,

mysql> select curdate(); +------------+ | curdate() | +------------+ | 2019-09-24 | +------------+ 1 row in set (0.04 sec) mysql> select curtime(); +-----------+ | curtime() | +-----------+ | 20:45:34 | +-----------+

其他命令只能做截取功能,不可以与select 连用,可以用now()获得时间,再进行截取

mysql> select year(now()),month(now()),day(now()),time(now()); +-------------+--------------+------------+-------------+ | year(now()) | month(now()) | day(now()) | time(now()) | +-------------+--------------+------------+-------------+ | 2019 | 9 | 24 | 20:52:45 | +-------------+--------------+------------+-------------+ 1 row in set (0.04 sec)

#############################################################################################################

 

4.用时间日期类建表

 

mysql> create table T1 ( -> name char(10), -> your_start year(4), -> up_time time, -> birthday date, -> party datetime);

查看:

mysql> desc T1; +------------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+----------+------+-----+---------+-------+ | name | char(10) | YES | | NULL | | | your_start | year(4) | YES | | NULL | | | up_time | time | YES | | NULL | | | birthday | date | YES | | NULL | | | party | datetime | YES | | NULL | | +------------+----------+------+-----+---------+-------+

插入数值:

mysql> insert into T1 values ("zhangsan",2001,200715,20191010,now()); Query OK, 1 row affected (0.31 sec) mysql> select * from T1; +----------+------------+----------+------------+---------------------+ | name | your_start | up_time | birthday | party | +----------+------------+----------+------------+---------------------+ | zhangsan | 2001 | 20:07:15 | 2019-10-10 | 2019-09-24 21:19:31 | +----------+------------+----------+------------+---------------------+ 1 row in set (0.00 sec)

 

 

#######################################################################################################################

5、枚举类型:

enum 单选:—格式:字段名   enum(值1,值2,值N)

      —只能选择一个值,这个值必须在列表中选择

set       多选:—格式:字段名 set(值1,值2,值N) 

      —可以选择多个值,这些值也必须在列表内

  

建表与查看: 

mysql> create table T2 ( -> name char(5), -> likes set('eat','game','film','music'), -> sex enum('boy','girl','no')); Query OK, 0 rows affected (0.14 sec) mysql> desc T2; +-------+----------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------------------------------+------+-----+---------+-------+ | name | char(5) | YES | | NULL | | | likes | set('eat','game','film','music') | YES | | NULL | | | sex | enum('boy','girl','no') | YES | | NULL | | +-------+----------------------------------+------+-----+---------+-------+ 3 rows in set (0.01 sec)

插入数据与查看数据:

mysql> insert into T2 values("bob","game,music","boy"); Query OK, 1 row affected (0.00 sec) mysql> select *from T2; +------+------------+------+ | name | likes | sex | +------+------------+------+ | bob | game,music | boy | +------+------------+------+ 1 row in set (0.00 sec)

 

 

 

 

转载于:https://www.cnblogs.com/zhanglei97/p/11581244.html

最新回复(0)