linux 获取数据库 表条数据类型,database

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

学习准备

安装1

2

3

4

5sudo apt-get install mysql-sever

sudo apt-get install mysql-client

sudo apt install libmysqlclient-dev

登录

安装完成后会出现界面要求输入密码(两次),该密码即为初始登录时root密码1

2

3

4

5

6shell>mysql -u root -p

#-u为用户选项后加用户名

#-p为密码选项表示该用户需要密码回车之后会出现密码输入提示

mysql>

#输入密码正确后进入mysql

linux平台下MySQL安装目录

文件夹文件夹内容/usr/bin客户端和脚本

/usr/sbinmysqld服务器

/var/lib/mysql日志文件和数据库

/usr/share/info信息格式的手册

/usr/share/manUNIX帮助页/

/usr/include/mysql头文件

/usr/lib/mysql库

/usr/share/mysql错误消息、字符集、实例配置文件等

数据库的基本操作查看当前存在的数据库1SHOW DATABASES;

创建数据库1CREATE DATABASE database_name;

查看数据库的定义1SHOW CREATE DATABASE database_name;

删除数据库1DROP DATABASE database_name;

查看数据库支持的引擎1SHOW ENGINES;

数据表的基本操作

选择数据库1USE database_name;

创建数据表1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16CREATE TABLE

(

字段名1, 数据类型 [列级别的约束条件] [默认值],

字段名2, 数据类型 [列级别的约束条件] [默认值],

...

[表级别约束条件]

)

$ eg: $

CREATE TABLE table_name

(

id (11),

name VARCHAR(25),

deptid (11),

salary FLOAT

);

查看所有的表1SHOW TABLES;

使用主键约束

单字段主键

主键又称主码,是表中一列或多列的组合。主键约束($ Primary Key Constraint $)要求主键列的数据唯一,且不为空。主键能够唯一地标示表中的

两种定义方法1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21字段名 数据类型 PRIMARY KEY [默认值]

#该方法在定义列的同时指定主键

[CONSTRAINT ] PRIMARY KEY [字段名]

#该方法在定义完所有列后定义主键

$eg:$

CREATE TABLE table_name

(

id (11) PRIMARY KEY,

name VARCHAR(25),

deptid (11),

salary FLOAT

);

CREATE TABLE table_name

(

id (11),

name VARCHAR(25),

deptid INT(11),

salary FLOAT,

PRIMARY KEY(id)

);

多字段联合主键1

2

3

4

5

6

7

8

9

10

11

12PRIMARY KEY [字段1, 字段2..., 字段 n]

$ eg: $

CREATE TABLE table_name

(

id INT(11) PRIMARY KEY,

name VARCHAR(25),

deptid INT(11),

salary FLOAT,

PRIMARY KEY (name, deptid)

);

使用外键约束

外键的作用是在两个表的数据之间建立链接,可以是一列或多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中的主键的某个值。

外键首先是表中的一个字段,可以不是本表的主键,但是要对应另外一个表中的主键。外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行。外键的主要作用是保持数据的一致性、完整性

主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表。

从表 (子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表。

创建外键的语法规则:1[CONSTARAINT ] FOREIGN KEY 字段名1 [字段名2, ...] REFERENCES 主键列1 [ ,主键列2,...]

“外键名”为定义的外键约束的名称,一个表中不能有相同名称的外键;

“字段名” 表示子表需要添加外键约束的字段列;

“主表名”表示被子表外键所依赖的表的名称;

“主键列”表示主表中定义的主键列,或者列组合。

$ eg: $1

2

3

4

5

6

7

8CREATE TABLE student_constraint

(

idINT(11) PRIMART KEY,

name VARCHAR(25),

deptId INT(11),

salary FLOAT,

CONSTRAINT con_student_id_deptId FOREIGN KEY(deptId) PEFERENCES student

);

注:关联指的是在关系型数据库中,相关表之间的联系。它是通过相容或相同属性或属性组来表示的。子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配,如果类型不一样,那么创建子表时就会出现错误

1ERROR 1005 (HY000): Can't create table 'database.tablename'(error:150)

使用非空约束

非空约束(Not Null Constraint)指字段不能位空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。

非空约束的语法规则如下:1字段名 数据类型 NOT NULL

使用唯一性约束

唯一性约束(Unique Constraint)要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或几列不出现重复值。

唯一性约束的语法规则不出现重复值。

唯一性约束的语法规则如下:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19规则1

字段名 数据类型 UNIQUE

# 指定名称唯一

CREATE TABLE table_test

(

id INT(11) PRIOMARY KEY,

name VARCHAR(22) UNIQUE,

location VARCHAR(50)

);

规则2

[CONSTRAINT ] UNIQUE ()

CREATE TABLE table_test

(

id INT(11) PRIMARY KEY,

name VARCHAR(22),

location CARCHAR(50),

CONSTRAINT STH UNIQUE(name)

);

UNIQUE 与PRIMARY KEY的区别是:一个表中可以有多个字段声明为UNIQUE,但只能有一个字段声明位PRIMARY KEY;声明为PRIMARY KEY的列不允许有空值,但是声明UNIQUE的字段允许有空值。

使用默认约束

默认约束(Default Constraint)是指某列的默认值。例如,男性同学较多,性别就可以默认为‘男’。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为‘男’。

语法规则如下:1

2

3

4

5

6

7

8

9字段名 数据类型 DEFAULT 默认值

CREATE TABLE table_test

(

id INT(11) PRIMARY KEY,

name VARCHAR(22) NOT NULL,

deptId INT(11), DEFAULT 1111,

salary FLOAT

);

设置表的属性值自动增加

在某些时候希望插入新的记录的时候,系统能自动生成字段的主键值。可以通过为表添加AUTO_INCREMENT 关键字来实现。默认的,在MySQL中AUTO_INCREMENT的初始值为1,每新增一条记录,字段值自动加1.一个表中只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT, SMALLINT, INT, BIGINT)等。

设置表的属性值自动增加的语法规则如下:1

2

3

4

5

6

7

8字段名 数据类型 AUTO_INCREMENT

CREATE TABLE table_test

(

id INT(11) PRIMARY KEY AUTO_INCRMENT,

name VARCHAR(25) NOT NULL,

deptId INT(11),

salary FLOAT

);

查看数据表结构

查看表基本结构语句DESCRIBE

DESCRIBE/DESC语句可以查看表的字段信息,包括字段名、字段类型数据、是否为主键、是否有默认值等。语法规则如下::1

2

3

4

5

6DESCRIBE 表名;

#简写:

DESC 表名;

eg:

mysql> desc student;

+————+——————-+———+——-+————-+———-+

| Field | Type | Null | Key | Default | Extra |

+————+——————-+———+——-+————-+———-+

| id | int(11) | YES | | NULL | |

| name | varchar(25) | YES | | NULL | |

| deptid | int(11) | YES | | NULL | |

| salary | float | YES | | NULL | |

+————+——————-+———+——-+————-+———-+

4 rows in set (0.00 sec)

mysql>

其中,各个字段的含义分别解释如下:

Null:表示该列是否可以存储NULL值

Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE的索引的一部分;MUL表示在列中某个给定值允许出现多次

Default:表示该列是否有默认值,如果有的话是多少​

Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT

查看表详细结构

SHOW CREATE TABLE语句可以用来显示创建表时的CREATE TABLE 语句,语法格式如下1

2SHOW CREATE TABLE ;

# 'G'参数能够让结果显示的更加直观

修改数据表

修改表名1ALTER TABLE RENAME [TO] ;

TO为可选参数,使用与否不影响结果

修改字段的数据类型1ALERT TABLE MODIFY

修改字段名1ALERT TABLE CHANGE ;

添加字段1ALERT TABLE ADD [约束条件] [FIRST | AFTER 已存在字段名];

新字段名为需要添加的字段名称;“FIRST”为可选参数,其作用是将新添加的字段设为表的第一个字段;“AFTER”为可选参数,其作用是将新添加的字段添加到“已存在字段名“后面。

注:如果SQL语句没有这两个关键字,默认添加到数据表的最后列。

删除字段1ALTER TABLE DROP ;

修改字段的排列位置1ALTER TABLE MODIFY FIRST|AFTER

更改表的存储引擎1ALTER TABLE ENGINE=;

删除表的外键约束1ALTER TABLE DROP FOREIGN KEY ;

删除数据表

删除没有被关联的表1DROP TABLE [IF EXISTS] 表1,表2, ...表3;

其中,“表n”是要删除的表的名称,后面可以同时删除多个表,只需要将要删除的表名一次写在后面,相互之间用逗号隔开即可。如果要删除的数据表不存在,则MySQL会提示一条错误信息。

参数IF EXISTS用于在删除前判断要删除的表是否存在,加上该参数后,再删除表的时候,如果表不存在,SQL语句可以顺利执行,但是会发出警告。

删除被其他表关联的主表

在数据表存在外键关联的情况下,如果直接删除父表,结果会显示失败。原因是直接删除将破坏表的参照完整性,如果必须要删除,可以先删除与他关联的子表,再删除父表,只是这样同时删除了两个表中的数据。有些情况下可能要保留子表,这时要单独删除父表,只需将关联的表的外键约束条件取消,然后删除父表。

数据类型和运算符

MySQL数据类型

MySQL支持多种数据类型,主要由数值类型,日期/时间类型和字符串类型。数值数据类型:包括整数类型$ TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT$,浮点小数数据类型$ FLOAT,DOUBLE$, 顶点小数类型$ DECIMAL $。

日期/时间类型:包括$ YEAR, TIME, DATE, DATETIME, TIMESTAMP$。

字符串类型:包括 $ CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM, SET$等, 字符串又分为文本字符串和二进制字符串。

整数类型

数值型数据类型主要用来存储数字。MySQL提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,其所需要的存储空间也会越大。MySQL主要提供的整数类型有$ TINYINT, SMALLINT, MEDIUMINT, INT(INTEGER), BIGINT$,整数类型的属性字段可以添加$ AUTO$_$INCEEMENT$自增约束条件。下表为MySQL的数值类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值