加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_梅州站长网 (https://www.0753zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL库表操作

发布时间:2022-11-25 13:00:32 所属栏目:MySql教程 来源:
导读:  SQL简介以及分类 1.SQL简介

  SQL:结构化查询语言(Structured Query Language),在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。使用SQL语句,程序员和数据库管理员可以完成如下的任务:
  SQL简介以及分类 1.SQL简介
 
  SQL:结构化查询语言(Structured Query Language),在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。使用SQL语句,程序员和数据库管理员可以完成如下的任务:
 
  2.SQL语句分类
 
  MySQL致力于支持全套ANSI/ISO SQL标准。在MySQL数据库中,SQL语句主要可以划分为以下几类
 
  当然还有Transaction Control:事务控制COMMIT、ROLLBACK、SAVEPOINT等语句
 
  数据库操作
 
  数据库命名规则:
 
  必须以字母开头
 
  可包括数字和三个特殊字符(# _ $)
 
  不要使用MySQL的保留字
 
  同一Schema下的对象不能同名
 
  1、查看
          SHOW DATABASES
   语法:
       SHOW DATABASES LIKE 匹配符;
  2、创建
   CRATE DATABASE
   语法:
          CREATE DATABASE [IF NOT EXISTS]数据库名;
          功能:用给定的名字创建一个数据库
          如果数据库已经存在,发生一个错误。
          查看创建数据库:SHOW CREATE DATABASE <数据库名>;
          示例:
          create database school DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  3、删除
      DROP DATABASE
   语法:
          DROP DATABASE [IF EXISTS]数据库名;
          功能:删除数据库中得所有表和数据库
          要小心使用这个命令(慎用!!!)
  4、切换
      使用USE选用数据库
      语法:
          USE 数据库名;
          功能:把指定数据库作为默认(当前)数据库使用,用于后续语句。       
  5. 其他操作
          查看当前连接的数据库
          SELECT DATABASE();
          查看数据库版本
          SELECT VERSION();
          查看当前用户
          SELECT USER();
          查看所有用户
          SELECT User,Host,Password FROM mysql.user;
  注:关于mysql默认库的解释
 
  MySQL自带数据库:
 
  Information_schema: 主要存储了系统中的一些数据库对象信息:如用户表信息、列信息、权限信
 
  息、字符集信息、分区信息等。(数据字典表)
 
  performance_schema: 主要存储数据库服务器的性能参数
 
  mysql: 存储了系统的用户权限信息及帮助信息。
 
  test: 系统自动创建的测试数据库,任何用户都可以使用。
 
  数据库表的操作 1.表的创建
 
  标准的建表(table)语法(列定义之间以英文逗号,隔开):
  数据表的每行称为一条记录(record),每一列称为一个字段(field)。
  主键列:唯一能够标识每条记录的列。
   
  CREATE TABLE [schema.]table
      (column datatype[DEFAULT expr] ,
       …
      ) ENGINE = 存储机制
      
  简单语法:
      CREATE TABLE 表名(
      列名 列类型,
      列名 列类型
      );
  示例:
  CREATE TABLE account(
  a_id INT(11) NOT NULL AUTO_INCREMENT,
  ablance FLOAT DEFAULT NULL,
  PRIMARY KEY (a_id)
  )ENGINE=INNODB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  2.表的物理存储位置
 
  InnoDB(默认的存储引擎)的表:
 
  [root@blackstone mysql]# pwd
  /var/lib/mysql/mysql
  [root@blackstone mysql]# ll user*
  -rw-rw----. 1 mysql mysql 10630 Oct 16 00:32 user.frm   # 描述表结构文件,字段长度等,frame框架
  -rw-rw----. 1 mysql mysql   524 Oct 16 00:41 user.MYD   # 数据信息文件,存储数据信息(如果采用独立表存储模式) data
  -rw-rw----. 1 mysql mysql  2048 Oct 16 01:27 user.MYI   # 索引信息文件,index
  InnoDB(默认的存储引擎)的表:
  [root@node2 employess]# ls -l t4*
  -rw-r----- 1 mysql mysql  8586 7月  16 20:31 t4.frm
  -rw-r----- 1 mysql mysql 98304 7月  16 20:32 t4.ibd
  t4.frm:存储列相关信息,描述表结构文件,字段长度等
  t4.ibd:数据行+索引,如果采用独立表存储模式,data\a中还会产生b.ibd文件(存储数据信息和索引信息)
      如果采用共存储模式的,数据信息和索引信息都存储在ibdata1中
      如果采用分区存储,还会有一个t.par文件(用来存储分区信息)
  3.数据类型
 
  常用的数据类型:
 
  在这里插入图片描述
 
  4.查看表
 
  show语句
  语法:
  SHOW TABLES[FROM 数据库名][LIKE wild];
  功能:显示当前数据库中已有的数据表的信息【结构和创建信息】
  DESCRIBE语句
  语法:
  {DESCRIBE|DESC}表名[列名];
  # or
  show columns from 表名称;
  功能:查看数据表中各列的信息
  注:用SHOW CREATE TABLE 表名可以查看更全面的表定义信息
 
  5.表的删除
 
  DROP TABLE
  语法:
   DROP TABLE [IF EXISTS] 表名;
  功能:删除指定的表
  6.表的修改
 
  修改列类型
   ALTER TABLE 表名 MODIFY 列名 列类型;
  
  增加列
   ALTER TABLE 表名 ADD 列名 列类型;
  
  删除列
   ALTER TABLE 表名 DROP 列名;
  列改名
   ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;
  更改表名
   ALTER TABLE 表名 RENAME 新表名;
   RENAME TABLE 表名 TO 新表名;
  7.表的复制
 
  方法一:在create table语句的末尾添加like子句,可以将源表的表结构复制到新表中,语法格式如下。
  create table 新表名 like 源表
  方法二:在create table语句的末尾添加一个select语句,可以实现表结构的复制,甚至可以将源表的表
  记录拷贝到新表中。下面的语法格式将源表的表结构以及源表的所有记录拷贝到新表中。
  create table 新表名 select * from 源表
  方法三:如果已经存在一张机构一致的表,复制数据
  insert into 表 select * from 原表;
  8.约束
 
  约束是在表上强制执行的数据校验规则。约束主要用于保证数据库的完整性。当表中数据有相互依赖性时,可以保护相关的数据不被删除。
 
  约束的目的:保障数据的一致性,降低数据的冗余,唯一性的确立,取值范围的确定,数据之间的依赖关系。
 
  这里举个例子,一个学生表和一个成绩表,那么在成绩表中插入数据时一定需要确保学生姓名在学生表内是存在的。故对于这种表之间的依赖关系也需要被体现出来,其实现就是用了约束来实现。
 
  约束的分类:
 
  主键约束保证唯一性—常用于记录编号
 
  非空约束
 
  约束字段值不为空
 
  唯一性约束
 
  保证唯一性—针对字段值
 
  外键约束
 
  解决表之间的依赖关系
 
  CKECK
 
  DEFAULT约束
 
  默认值设定
 
  约束创建的时机:建表时和建表后
 
  同时对于约束的创建对象可以是一张表,也可以是一个字段(一列),当然针对字段数的多少可以划分为单列约束和多列约束。
 
  标准添加语法:
 
  1.创建时添加
  语法:
      列定义    [CONSTRAINT 约束名] 约束类型(列名)
  2.增加约束:
   alter table 表名 add constraint 约束名 约束类型(要约束的列名)
  约束名的要求:
  推荐采用:表名_列名_约束类型简介
  非空约束(NOT NULL)
 
  列级约束,只能使用列级约束语法定义。确保字段值不允许为空,只能在字段级定义
 
  示例:
 
  CREATE TABLE tb_student(
      id INT PRIMARY KEY AUTO_INCREMENT,
      NAME VARCHAR(18) NOT NULL
  );
  在这里插入图片描述
 
  NULL:所有数据类型的值都可以是NULL。空字符串不等于NULL。0也不等于NULL
 
  唯一键约束
 
  唯一性约束条件确保所在的字段或者字段组合不出现重复值,唯一性约束条件的字段允许出现多个NULL。同一张表内可建多个唯一约束。唯一约束可由多列组合而成,建唯一约束时MySQL会为之建立对应的索引。如果不给唯一约束起名,该唯一约束的名字默认与列名相同。
 
  CREATE TABLE tb_student(
      id INT PRIMARY KEY AUTO_INCREMENT,
      NAME VARCHAR(18) UNIQUE NOT NULL
 

(编辑:云计算网_梅州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!