初识mysql数据字段属性_初识Mysql(一)

1 搭建数据库服务器

2 MYSQL数据类型

3 修改表结构

1 搭建数据库服务器

1.1 存在mariadb时:

#systemctl status mariadb

#systemctl stop mariadb

#rpm -e --nodeps  mariadb-libs #不依赖关系卸载

#rm -rf /etc/my.cnf

#rm -rf /var/lib/mysql/*

1.2 新安装时

[root@ser51 ~]# yum -y install perl-Data-Dumper perl-JSON

[root@ser51 ~]# rpm -Uvh mysql-community-*.rpm

#无论软件存在与否都执行升级

[root@ser51 ~]# rpm -qa | grep -i mysql

1.3启动服务

服务名称:mysqld

端口号:3306

主配置文件:/etc/my.cnf

数据库目录:/var/lib/mysql 启动服务,数据数初始化会生成文件

日志文件:/var/log/mysqld.log

服务脚本:/usr/lib/systemd/system/mysqld.service

1.4 连接数据库

[root@ser51 ~]# which mysql

/usr/bin/mysql

[root@ser51 ~]# rpm -qf /usr/bin/mysql #询问文件属于哪个包

mysql-community-client-5.7.17-1.el7.x86_64

[root@ser50 ~]# mysql -u root -p密码

[root@ser50 ~]# mysql -h 服务器 -u用户名 -p密码 数据库

查看登录的初始密码:

[root@ser51 ~]# grep password /var/log/mysqld.log

登录:

[root@ser51 ~]# mysql -uroot -p'5;wG)DluZ)#Q'  #特殊符号用单引

1.5 临时登录生效

第一次登录需要重新设置密码才能查看数据库信息

设置全局密码验证策略:

mysql> set global validate_password_policy=0;

设置全局变量密码长度:

mysql> set global validate_password_length=6;

mysql> alter user root@"localhost" identified by "123456" #修改密码

1.6 全局永久生效

[root@ser51 ~]# vim /etc/my.cnf

[mysqld]

validate_password_policy=0

validate_password_length=6

1.7 数据库使用命令

SQL指令:

DDL:数据定义语言

DML:数据操作语言

DCL:数据控制语言

DTL:数据事物语言

mysql> select database(); #查看当前所在的库:

mysql> create database 库名;  #创建数据库

mysql> use 库名;  #切换数据库

mysql> system ls /var/lib/mysql #不退出操作linux命令

mysql> drop database 数据库名;  #删除数据库

创建表

mysql> create table 库名.表名(字段名1 字段类型(宽度) 约束条件, ...);

mysql> alter table 表名 add 字段 类型(宽度); #增加表字段

mysql> drop table 库名.表名   #删除表

mysql> describe 表名 #查看表内字段(desc)

mysql> insert into 表名 values();

mysql> select * from 表名;

mysql> update 表名 set 字段="新值" where 字段="值";

2 MYSQL数据类型

2.1 数值类型

tinyint  1字节  -128~127  0~255

int        4字节

float    4字节 float(m,n) m:总位数  n:小数位位数

double  8字节

2.2 字符类型

定长:char(255) 不写宽度默认为1

不够指定字符数时在右边用空格补齐(会浪费磁盘空间)

变长:varchar  按数据实际大小分配存储空间(会消耗CPU资源,每次都会询问需要的储存的空间的大小)

大文本类型:text/blob

数值类型的宽度和字符类型的宽度的区别:

字符类型超出就不能写入数据;

数值类型的宽度是显示宽度,不能控制给字段赋值的大小,大小由类型本身决定;

案例:int类型的宽度

mysql> create table db1.t10(id int zerofill,pay int(3) zerofill);

#不够字节的用0填充

mysql> insert into t10 values(25,25);

mysql> select *from t10;

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

| id         | pay  |

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

| 0000000025 |  025 |

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

2.3 日期时间类型

年:  year  YYYY

日期:date  YYYYMMDD

时间:time  HHMMSS

日期时间:datetime/timestamp   YYYYMMDDHHMMSS

Datetime占8个字节

Timestamp占4个字节

区别:当没有给两者分别赋值时,timestamp自动以当前系统时间赋值,而datetime默认为NULL

案例:

create  table   t15(

meetting  datetime,

partty       timestamp

);

insert into  t15  values(now(),now());

insert into  t15(meetting)  values(20171020091828);

insert into  t15(partty)  values(20191020091828);

select  * from t15;

2.4 时间函数

now()  获取调用此函数时的系统日期时间

year()  date() time()  day() month()

mysql> select date(now()); #函数可以嵌套

Year的年份处理:默认使用4位数字表示

2位数字时:01~69为2000~2069  70~99为1970~1999

2.5 枚举类型

字段只能在指定的范围内选择

格式:

字段名 enum(值1,值2,值N)  单选

字段名 set(值1,值2,值N)  多选

案例:

create table t21(name char(10),sex enum("boy","girl"),

likes set("film","game","book","food"));

mysql> insert into t21 values("tom","boy","film,game");

mysql> insert into t21 values("hai",2,"film,game");#可以用数字表示

2.6 约束条件

作用:限制如何给字段赋值

NULL:空,不设置默认为空  NOT NULL:不允许为空

Key:索引类型

Default:默认设置

Extra:额外设置

案例:查看约束条件(desc)

mysql> create table t22(name char(10) not null,

-> sex enum("boy","girl") default "boy",

-> age tinyint(2) unsigned not null default 18,

->likes set("game","food","book","music") not null

default "game,book");

mysql> insert into t22(name) values("tom");

#其他字段没有写值,使用默认

mysql> insert into t22 values("jom",1,20,"game,music");

注意:“null” 和 “” 和 null的区别

mysql> insert into t22(name) values("null");

Query OK, 1 row affected (0.04 sec)

mysql> insert into t22(name) values(null);

ERROR 1048 (23000): Column 'name' cannot be null

mysql> insert into t22(name) values("");

Query OK, 1 row affected (0.03 sec)

3 修改表结构

alter table 库.表 执行动作

3.1 添加新字段

add 字段名  类型(宽度);

add 字段名  类型(宽度) 约束条件;

add 字段名  类型(宽度) 约束条件 first; #添加在第一个

add 字段名  类型(宽度) 约束条件 after 字段名; #在...之后添加

add 字段名  类型(宽度),add 字段名  类型(宽度); #添加多个

案例:

mysql> alter table t21 add mail char(20);#默认添加在字段最后

mysql> alter table t21  add id int(4) not null default 0001 first;

mysql> alter table t21  add class int(4) not null default 1710after name;

3.2 删除已有字段

drop字段名;

3.3 修改字段类型

modify字段名 类型(宽度) 约束条件;

3.4 修改字段名

change原字段名 新字段名  类型(宽度) 约束条件;

3.5 修改表名

alter table 旧表名 rename (to) 新表名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值