您的位置:1010cc时时彩经典版 > 1010cc安卓版 > 【1010cc时时彩经典版】mysql数据表的基本操作,

【1010cc时时彩经典版】mysql数据表的基本操作,

发布时间:2019-11-05 14:28编辑:1010cc安卓版浏览(59)

    Mysql命令行

    1、 在phpstudy的右键菜单中,mysql工具 à mysql命令行

    2、 弹出的命令框中提示”enter password”,输入默认密码root

    3、 如果看到”you mysql connection”就说明你登陆成功了。

    4、 在命令行中,每一条指令都必须以分号;结束,否则系统会认为你这条指令还没有完成,始终要求你继续输入。

     

    2,排序(order by),asc;代表升序,desc;代表降序

    打开数据库

    USE db_name
    

    7.设置数据表的属性值自动增加:在数据库应用中,经常希望在每次插入新数据时,系统会自动生成字段的主键值。可以为表主键添加auto_increment关键字来实现。在mysql中,默认情况下auto_increment初始值为1,每新增一条记录,字段自动加1.一个表只能有一个字段使用auto_increment约束,且每个字段必须为主键的一部分。auto_increment约束的字段可以是任何整数类型(tinyint/samllint/int/bigint)。

    语法规则:字段名 数据类型 auto_increment

    例:定义数据表tb_employee8,指定员工标号自动增加

    mysql> create table tb_employee8(id int(11)primary key auto_increment,name varchar(25)not null,deptld int(11),salary float);
    

     

    mysql> insert into tb_employee8(name,salary) values('lucy',1000),('lii',800),('cai',20000);
    Query OK, 3 rows affected (0.00 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    
    mysql> select * from tb_employee8;
     ---- ------ -------- -------- 
    | id | name | deptld | salary |
     ---- ------ -------- -------- 
    |  1 | lucy |   NULL |   1000 |
    |  2 | lii  |   NULL |    800 |
    |  3 | cai  |   NULL |  20000 |
     ---- ------ -------- -------- 
    3 rows in set (0.00 sec)
    

     

    (2)key:表示该列是否已经编制索引。pri为该列主键的一部分;uni表示该列是unique索引的一部分;mul表示在列中某个给定值允许出现多次。

    注意:

    1、 次序是从0开始的,也就是说第一条记录的序号是0

    2、 这里的序号不等于ID,它仅仅是代表排列次序。

    3、 LIMIT关键字是mysql所独有的,比如:mssql和Oracle中就没有Limit关键字。

     

    SELECT * FROM student LIMIT 3,2
    

     

    从第4条记录开始,获取之后的两条记录。

     

    enumcvall(a,b,c.......);列枚举-限定有限值

    添加字段

    ALTER TABLE tbl_name ADD 字段名称 字段类型 [完整性约束条件]  [ FIRST | (AFTER 字段名称)] 
    

    若需要添加多个字段,需要多个ADD操作,以“,”号分隔

    11.删除数据表

    drop table 表1 表2 。。。
    

    删除被其他表关联的主表:先删除字表,再删除主表(或取消外键约束,删除主表)

    1.创建表:之前需要use database database_name 然后create table 表名();

    求和sum()

    在查询结果中对指定字段的值求和。

    SELECT SUM(sSCore) FROM student
    
    //全班总分
    
    SELECT SUM(sSCore),sSex FROM student GROUP BY sSex
    
    //查看男生总分和女生总分
    

     

     

    数据与索引的更新是同步的,如果全部数据都有索引就会降低效率;

    字符串类型

    数据类型 存储需求
    CHAR(M) M个字节,0<=M<=255
    VARCHAR(M) L 1个字节,L<=M且0<=M<=65535
    TINYTEXT L 1个字节,L<2^8
    TEXT L 2个字节,L<2^16
    MEDIUMTEXT L 3个字节,L<2^24
    LONGTEXT L 4个字节,L<2^32
    ENUM('Value1','Value2',......) 1或2个字节,取决于枚举值的个数(最多65535个值)
    SET('Value1','Value2',......) 1,2,3,4或8个字节,取决于SET成员的数目(最多64个成员)

    1.创建表:之前需要use database database_name 然后create table 表名();

    例:创建员工表tb_employee1,结构如下表所示

    字段名称

    数据类型

    备注

    id

    int(11)

    员工编号

    name

    varchar(25)

    员工名称

    depld

    int(11)

    所在部门编号

    salary

    float

    工资

    mysql> create database aa;
    mysql> use aa;
    mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float);
    

     

    mysql> alter table customers change c_contact c_phone varchar(50);
    

    查看数据库列表

    show Databases

    1,储存数据以及数据结构的厂库。(db);

    删除默认值

    ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT
    

    6.默认约束:指定某列的默认值。如男性同学较多,性别就可以默认为“男”。如果插入一条新的记录时没有为这个字段赋值,那么系统自动会为这个字段赋值为男。

    语法规则:字段名 数据类型 default 默认值

    例:mysql> create table tb_employee7(id int(11)primary key,name varchar(25)not null,deptld int(11)default 1111,salary float);
    

     

     5.唯一性约束:要求该列唯一,允许为空,但只能出现一个空值。唯一性约束可以确保一列或者多列都不能出现重复值。

    多张表连接

    示例:

    SELECT * FROM score
    
    INNER JOIN student ON score.sid = student.sid
    
    INNER JOIN class ON student.cid = class.cid
    

     

    如果数据存在则打印,不能等于它本身; not exsits;相反,如果数据不存在则打印

    5.通过HAVING子句对分组结果进行二次筛选

    配合GROUP BY 实现,比如:

    SELECT Region,COUNT(*),MAX(Population),MIN(Population),SUM(Population),AVG(Population) FROM country GROUP BY Region HAVING MAX(Population) > 1000000
    

    9.查看表详细结构

    语法规则:show create table 表名G

    mysql> show create table tb_employee8G
    *************************** 1. row ***************************
           Table: tb_employee8
    Create Table: CREATE TABLE `tb_employee8` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(25) NOT NULL,
      `deptld` int(11) DEFAULT NULL,
      `salary` float DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
    1 row in set (0.00 sec)
    

     

    (2)修改字段数据类型

    罗列出数据表中的字段

    格式:show columns from 表名

    Describe 数据表名

     

    本机ip;127.0.0.1

    比较运算符

    符号 形式 作用
    = X1=X2 判断是否相等
    !=或<> X1!=X2或X1<>X2 判断是否不相等
    <=> X1<=>X2 判断是否相等,可以判断是否等于NULL
    >,>= X1>X2,X1>=X2 判断是否大于等于
    <,<= X1<X2,X1<=X2 判断是否小于等于
    IS NULL 或 IS NOT NULL x1 IS [NOT] NULL 判断是否等于NULL
    BETWEEN ... AND ... 或者 NOT BETWEEN ... AND... X1 BETWEEN m AND n 判断是否在范围内
    IN 或 NOT IN X1 IN (值1,...) 判断是否在一个固定范围内
    LIKE 或 NOT LIKE X1 LIKE 表达式 判断是否匹配
    REGEXP REGEXP 正则表达式 判断是否正则匹配

    2.主键约束:主键又称主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不能为空。主键能够唯一标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询速度。主键分为两种类型:单字段主键和多字段联合主键。

    (1)单字段主键

    mysql> create table tb_employee1(id int(11)primary key,name varchar(25),depld int(11),salary float);
    mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float,primary key(id));
    

    (2)多字段联合主键

    mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float,primary key(id,name));
    

     

    查看表基本结构:describe 表名 或 desc 表名

    新建数据表

    1、 选中数据库之后,点击右侧的“新建数据表”,填写“数据表名”。

    2、 指定数据表的字段,也就是列。在指定字段的过程中我们要对字段添加字段名、数据类型、数据长度、是否是主键、是否自增。(多数情况下,主键是名为id的整数类型,而且是自增的。)

    3、 为字段指定这一列的数据类型。

    不是第一个数据必须是第二个数据,不能有第三个数据出现

    运算符

    4.非空约束(not null):是指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。

    (4)删除字段

    默认à定义

    这个选项代表,填充数据时如果该字段为空值时,所使用的默认值。

    (4),再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),

    二进制类型

    5.唯一性约束:要求该列唯一,允许为空,但只能出现一个空值。唯一性约束可以确保一列或者多列都不能出现重复值。

    (1)在定义完列之后直接指定唯一约束

    语法规则:字段名 数据类型 unique

    mysql> create table tb_dept2(id int(11)primary key,name varchar(22)unique,location varchar(50));
    

    (2)在定义完所有列之后指定唯一约束

    语法规则:constraint 约束名 unique(字段名)

    mysql> create table tb_dept3(id int(11)primary key,name varchar(22),location varchar(50),constraint sth unique(name));
    

    unique和primary key的区别:一个表中可以有多个字段声明为unique,但只能有一个primary key声明;声明为primary key的列不允许有空值,但是声明为unique的字段允许空值的存在。

     

    mysql> create table tb_dept1(id int(11)primary key,name varchar(22),location varchar(50));
    定义数据表tb_employee5,让它的deptld字段作为外键关联到tb_dept1的主键id:
    mysql> create table tb_employee5(id int(11)primary key,name varchar(25),deptld int(11),salary float,constraint fk_emp_dept1 foreign key(deptld) references tb_dept1(id));
    

    最大值最小值MAX()、MIN()

    在查询结果中的指定字段中找到最大的值或最小的值。

    SELECT MAX(sScore) FROM student
    
    //得到成绩最高分数
    
    SELECT MIN(sScore),sSex FROM student GROUP BY sSex
    
    //分别得到男生和女生最低分
    

     

     

    mysqladmin -u用户名 -p旧密码 password 新密码 

    删除字段

    ALTER TABLE tbl_name DROP 字段名称
    

    若需要删除多个字段,需要多个DROP操作,以“,”号分隔。

    注意:添加字段(ADD)与删除字段(DROP)可以在同一个语句里面(ALTER TABLE tbl_name ADD .....,DROP .....)

    语法规则:字段名 数据类型 not null

    例:定义数据表tb_employee6,指定员工的名称不能为空

    mysql> create table tb_employee6(id int(11)primary key,name varchar(25)not null,deptld int(11),salary float);
    

     

    创建一个部门表tb_dept1,表结构如下表所示

    as关键字

    用于对字段段取一个别名

    SELECT sName as '姓名',sAge as '年龄',sAddress as '地址' FROM student
    

     

     

    where a.sems_role_rid=b.rid and a.udeptid=c.deptid

    日期时间类型

    数据类型 存储范围 存储需求
    TIME -838:59:59 ~ 838:59:59 3
    DATE 1000-1-1 ~ 9999-12-31 3
    DATETIME 1000-1-1 00:00:01 UTC ~ 9999-12-31 23:59:59 8
    TIMESTAMP 1970-1-1 00:00:01 UTC ~ 2038-1-19 3:14:07 4
    YEAR 1901~2155 1

    8.查看数据表的结构

    查看表基本结构:describe 表名 或 desc 表名

    mysql> desc tb_employee8;
     -------- ------------- ------ ----- --------- ---------------- 
    | Field  | Type        | Null | Key | Default | Extra          |
     -------- ------------- ------ ----- --------- ---------------- 
    | id     | int(11)     | NO   | PRI | NULL    | auto_increment |
    | name   | varchar(25) | NO   |     | NULL    |                |
    | deptld | int(11)     | YES  |     | NULL    |                |
    | salary | float       | YES  |     | NULL    |                |
     -------- ------------- ------ ----- --------- ---------------- 
    

    (1)NULL:表示该列是否可以存储null值

    (2)key:表示该列是否已经编制索引。pri为该列主键的一部分;uni表示该列是unique索引的一部分;mul表示在列中某个给定值允许出现多次。

     

    mysql> create table tb_employee1(id int(11)primary key,name varchar(25),depld int(11),salary float);
    mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float,primary key(id));
    

    枚举类型

    ENUM / SET 类型

    设置其默认值为(‘值1’, ‘值2’, ‘值3’,…),由用户指定多个可选值,字段中的值必须是其中之一,最多只能有65535个可选值。

     

    (1), 关闭正在运行的MySQL服务。 

    修改表的存储引擎

    ALTER TABLE tbl_name ENGINE=存储引擎名称
    

    3.外键约束:外键用来在两个表之间建立联系,它可以是一列或者多列。一个表可以有一个或者多个外键。外键对应的是参照完整性,一个表的外键可以是空值,若不为空值,则每一个外键必须等于另一个表中主键的某个值。

    下面介绍几个概念。是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的主键。例如:部分表的主键id,在表tb中有一个键deptld与这个id关联。

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

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

    例:定义数据表tb_employee5,并且在该表中创建外键约束

    创建一个部门表tb_dept1,表结构如下表所示

    字段名称

    数据类型

    备注

    id

    int(11)

    部门编号

    name

    varchar(22)

    部门名称

    location

    varchar(50)

    部门位置

    mysql> create table tb_dept1(id int(11)primary key,name varchar(22),location varchar(50));
    定义数据表tb_employee5,让它的deptld字段作为外键关联到tb_dept1的主键id:
    mysql> create table tb_employee5(id int(11)primary key,name varchar(25),deptld int(11),salary float,constraint fk_emp_dept1 foreign key(deptld) references tb_dept1(id));
    

     

    alter table 表名 add 新字段名 数据类型
    例1:mysql> alter table tb_dept1 add managerld int(20);(没有完整性约束条件的字段)
    例2:mysql> alter table tb_dept1 add column1 varchar(12) not null;(添加有约束条件)
    例3:mysql> alter table tb_dept1 add column2 int(11) first;(添加到第一列)
    例4:mysql> alter table tb_dept1 add column3 int(11) after name;(添加到name后一列)
    

    格式:

    use 数据库名

    选定指定数据库为当前默认被操作的数据库。

    在使用操作数据表中的数据之前,必须要选定一个当前数据库。

     

    alter table 表名称 rename 新表名称;

    创建索引

    10.修改数据表:修改数据库中已经存在的数据表结构。常用的修改表的操作有:修改表名,修改字段数据类型或字段名,增加和删除字段,修改字段的排列位置,更改表的存储引擎,删除表的外键约束等。

    (1)修改表名

    alter table 旧表名 rename 新表名
    例:mysql> alter table tb_dept3 rename tb_deptment3;
    

    (2)修改字段数据类型

    alter table 表名 modify 字段名 数据类型
    例:mysql> alter table tb_dept1 modify name varchar(30);
    

    (3)添加字段

    alter table 表名 add 新字段名 数据类型
    例1:mysql> alter table tb_dept1 add managerld int(20);(没有完整性约束条件的字段)
    例2:mysql> alter table tb_dept1 add column1 varchar(12) not null;(添加有约束条件)
    例3:mysql> alter table tb_dept1 add column2 int(11) first;(添加到第一列)
    例4:mysql> alter table tb_dept1 add column3 int(11) after name;(添加到name后一列)
    

    (4)删除字段

    alter table 表名 drop 字段名
    例:mysql> alter table tb_dept1 drop column3;
    

    (5)修改字段排序

    alter table 表名 modify 字段1 数据类型 first after 字段2
    例1:mysql> alter table tb_dept1 modify id int(11) first;
    例2:mysql> alter table tb_dept1 modify column2 int(11) after column1;
    

    (6)更改表的数据引擎

    alter table 表名 engine=更改后的存储引擎
    例:mysql> alter table tb_dept1 engine=innodb;
    

    (7)删除表的外键约束

    alter table 表名 drop foreign key 外键约束名
    

    (8)修改字段名

    mysql> alter table customers change c_contact c_phone varchar(50);
    

     

    好久没梳理下Mysql基础命令了.今天抽空整理了下,虽然很简单...但是还是有必要巩固下基础滴啦

    语法:

    delete from 表名 where 条件

    虽然where是一个可选参数,但是通常情况下都需要写where条件,如果不写就是删除整张表的所有行。

    text; 没有最大长度限制的可变长度Variable; (存放65535个字符)

    查看当前服务器下的数据库列表

    SHOW { DATABASES | SCHEMAS }
    

     2.主键约束:主键又称主码,是表中一列或多列的组合。主键约束要求主键列的数据唯一,并且不能为空。主键能够唯一标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询速度。主键分为两种类型:单字段主键和多字段联合主键。

    内连接

    就是指仅仅查询两张表中有关联关系的数据,而没有关联关系的数据是不会被查询出来的。

     

     
       

     

    2,BLOB;5k;0-65k;

    查看默认的存储引擎

    SHOW VARIABLES LIKE '%storage_engine%'
    

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

    小练习:

    1、 新建一个产品product数据库

    2、 在数据库中添加产品product表,并建立字段pId (主键)、pName(产品名称)、pModel(产品型号)、pPrice(产品价格)

    3、 添加5条产品信息

    4、 在数据库中再添加一个产品入库表(saveInLib),并建立字段:sid(主键)、pName(产品名称)、saveInTime(入库时间)、saveInCount(入库数量)。

    5、 添加5条产品入库记录。

     

    1,基本命令

    常用存储引擎(注意各引擎优缺点)

    • InnoDB
    • MyISAM
    • Memory

     

    如何设置一个字段为自增

    1、在创建表或在修改字段结构的时候,设置字段的数据类型为int,然后选中auto_increment上的勾。

    2、当插入一条数据时,不要手动填写主键字段。

    3、主键生成的数字绝对不会重复,即使记录被删除。

    is e;是

    查询数据操作(DQL)

     7.设置数据表的属性值自动增加:在数据库应用中,经常希望在每次插入新数据时,系统会自动生成字段的主键值。可以为表主键添加auto_increment关键字来实现。在mysql中,默认情况下auto_increment初始值为1,每新增一条记录,字段自动加1.一个表只能有一个字段使用auto_increment约束,且每个字段必须为主键的一部分。auto_increment约束的字段可以是任何整数类型(tinyint/samllint/int/bigint)。

    where子句

    定义一个查询条件,然后在查询过程中用这个条件来筛选符合条件的记录。

     

    SELECT * FROM product WHERE pPrice >=1000
    
    查询价格大于等于1000的产品
    
    SELECT * FROM product WHERE pPrice <>3000
    
    SELECT * FROM product WHERE pPrice !=3000
    
    查询价格不等于3000的产品
    
    SELECT * FROM product WHERE pName = '中兴z954'
    

     

    查询产品名称是中兴z954的产品信息(在mysql中双引号与单引号都表示字符串,但是推荐使用单引号,因为我们将来要学习的mssql server 中字符串用单引号表示)

    第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,

    GROUP BY 查询结果分组

    默认情况下,GROUP BY 查询结果分组得到每组的第一个值
    配合GROUP_CONCAT()得到分组详情
    配合聚合函数

    • COUNT() NULL值不算一条记录
    • MAX()
    • MIN()
    • AVG()
    • SUM()

    配合WITH ROLLUP记录上面所有记录的总和

    mysql> desc tb_employee8;
     -------- ------------- ------ ----- --------- ---------------- 
    | Field  | Type        | Null | Key | Default | Extra          |
     -------- ------------- ------ ----- --------- ---------------- 
    | id     | int(11)     | NO   | PRI | NULL    | auto_increment |
    | name   | varchar(25) | NO   |     | NULL    |                |
    | deptld | int(11)     | YES  |     | NULL    |                |
    | salary | float       | YES  |     | NULL    |                |
     -------- ------------- ------ ----- --------- ---------------- 
    

    选择数据库use

    ip

    查看表结构及创建信息

    DESC tbl_name
    DESCRIBE tbl_name
    SHOW COLUMNS FROM tbl_name
    SHOW CREATE TABLE tbl_name
    
    alter table 表名 modify 字段名 数据类型
    例:mysql> alter table tb_dept1 modify name varchar(30);
    

    Update修改数据

    根据指定的条件确定需要修改的行,然后修改指定字段的数据。

    use 库名称;

    连接查询

     9.查看表详细结构

    删除数据表

    格式:drop table 数据表名

    char(位数);固定长度的字符串 特定字符串长度(高达255字 符)

    正则表达式查询

    alter table 表名 drop 字段名
    例:mysql> alter table tb_dept1 drop column3;
    

    语法:

    update 数据表名 set 字段1=值1,字段2=值2,……..WHERE 条件

    虽然where是一个可选参数,但是通常情况下都需要写where条件,如果不写就是修改整张表的所有行。

    gb1312;中文

    概览

    外键是表的一个特殊字段,被参照的表是主表,外键所在字段的表为子表。设置外键的原则需要记住,就是依赖于数据库中已存在的表的主键。外键的作用是建立该表与其父表的关联关系。父表中对记录做操作时,子表中与之对应的信息也应有相应的改变。
    外键的作用是保持数据库的一致性和完整性。
    可以实现一对一或者一对多的关系

    注意

    1. 父表和子表必须使用相同的存储引擎,而且禁止使用临时表。
    2. 数据库的存储引擎只能为InnoDB。
    3. 外键列和参照列必须具有相似的数据类型其中数字的长度或是否有符号位必须相同:而字符的长度则可以不同。
    4. 外键列和参照列必须创建索引。如果外键不存在索引的话,MYSQL将自动创建索引。

    外键约束的参照操作:

    • CASCADE:从父表删除或者更新且自动删除或者更新子表中匹配的行。
    • SET NULL:从父表删除或者更新行,并设置子表的中的外键列为NULL。如果使用该选项必须保证子表列中没有指定NOT NULL。
    • RESTRICT:拒绝对父表的更新或者删除操作。
    • NOT ACTION: 标准SQL的关键字,在MYSQL中与RESTRICT相同

     4.非空约束(not null):是指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。语法规则:字段名 数据类型 not null

    重命名数据表

    rename table student to sInfo;
    

     

    注意:to前面是修改前的原表名,to后面是修改后的新表名。

    4,mysql聚合函数

    修改表名

    ALTER TABLE tbl_name RENAME [TO|AS] new_name
    

    或者

    RENAME TABLE tbl_name TO new_name
    

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

    备份

    在phpmyAdmin中使用“导出”功能将数据表的结构与数据保存为一个.sql文件(保存格式选择SQL)

    1,增加对应数据;

    修改表结构

    mysql> create database aa;
    mysql> use aa;
    mysql> create table tb_employee1(id int(11),name varchar(25),depld int(11),salary float);
    

    存储大容量的文本

    TinyBlob ,blob,TinyText,text

    前两个是代表二进制字符串,后两个是代表非二进制字符串,都可以存储大量的文本信息。

    MediumBlob,MediumText

    LongBlob,LongText

    9,关闭mysql后台服务(管理员运行命令窗口);

    删除数据库

    DROP  { DATABASE | SCHEMA } [IF EXISTS] db_name
    

    语法规则:字段名 数据类型 auto_increment

    GROUP BY分组

    在指定字段中将数据内容重复的记录,聚合为一组。剔除重复的值。

    示例:

    SELECT * FROM student GROUP BY sSex
    
    SELECT sName FROM student GROUP BY sAge
    

     

    2,avg(); 平均值;

    存储引擎

    例:定义数据表tb_employee8,指定员工标号自动增加

    select语句

    查询语句,专门用于在数据表中按照用户指定的条件进行查询。

    like 模式 格式;

    查询表达式

    每个表达式表示想要的一列,必须至少有一列,多个列以","号分隔; "*" 表示所有列,tbl_name.*表示命名表的所有列。查询表达式可以使用 [AS] alias_name 为其赋予别名。

    mysql> insert into tb_employee8(name,salary) values('lucy',1000),('lii',800),('cai',20000);
    Query OK, 3 rows affected (0.00 sec)
    Records: 3  Duplicates: 0  Warnings: 0
    
    mysql> select * from tb_employee8;
     ---- ------ -------- -------- 
    | id | name | deptld | salary |
     ---- ------ -------- -------- 
    |  1 | lucy |   NULL |   1000 |
    |  2 | lii  |   NULL |    800 |
    |  3 | cai  |   NULL |  20000 |
     ---- ------ -------- -------- 
    3 rows in set (0.00 sec)
    

    小练习:

    1、 创建一张员工数据表,employee,包含字段:eId(标准整数,主键、自增)、姓名eName(varchar,50)、年龄eAge(tinyInt,无符号)、工号eNum(smallInt,不足的位数用0填充)、学历(枚举:初中~研究生)、性别(枚举:男,女)、出生日期(DateTime)、基本工资(Float,默认:1300)、自我介绍text。然后输入五名员工的信息。

     

     

    T-SQL语言基础之增删改查

    alter table test drop FOREIGN key FK_TEST_CLASSID

    查看支持的存储引擎信息

    SHOW VARIABLES LIKE 'have%'
    

    (1)修改表名

    通过关键字IN来进行关联查询

    查询所有数学成绩在60分以上的学生的信息。

    Select * from student where
    
    sid in
    
    (
    
        SELECT sid FROM score
    
        WHERE score >60 And sProject = '数学'
    
    )
    

     

    IN在此处表示,sid必须与()内的查询结果之一相等。

     

    4,子查询,要消耗更长的执行时间,当数据量增加时,执行时间会急剧加长,

    其他常用函数

    名称 描述
    FORMAT(x,n) 将数字x进行格式化,将x保留到小数点后n位
    ASCII(x) 返回字符串x的第一个字符的ASCII码
    BIN(x) 返回x的二进制编码
    HEX(x) 返回x的十六进制编码
    OCT(X) 返回x的八进制编码
    CONV(x,f1,f2) 返回将x从f1进制数变成f2进制数
    INET_ATON(ip) 将ip地址转换为数字
    INET_NTOA(n) 将数字转化为IP地址
    GET_LOCK(name,time) 定义锁
    RELEASE_LOCK(name) 释放锁
    alter table 表名 engine=更改后的存储引擎
    例:mysql> alter table tb_dept1 engine=innodb;
    

    什么是数据库

    数据库顾名思义,就是用来存储数据的工具,用一个比例形象的例子来比喻,就是Excel,一个Excel文件就可以看成是一个数据库。

    utf8;大型编码;

    更新数据

    UPDATE tbl_name  SET 字段名称=值,...... [WHERE 条件] [ORDER BY 字段名称] [LIMIT 限制条件]
    
    alter table 表名 drop foreign key 外键约束名
    

    auto_increment

    自增

    1,基本命令

    索引分类

    • 普通索引
    • 唯一索引(UNIQUE)
    • 全文索引(FULLTEXT)
    • 单列索引
    • 多列索引
    • 空间索引(数据类型为GEOMETRY,存储引擎为MyISAM)SPATIAL

    例:定义数据表tb_employee6,指定员工的名称不能为空

    示例:

    SELECT * FROM student WHERE sName LIKE '王%'
    

     

    查找所有姓王的学生

    LIKE关键字在这里代表模糊查询,不是像=那样必须完全匹配。

     

    SELECT * FROM student WHERE sName LIKE '%五'
    

     

    查找以“五”字结尾的数据

     

    SELECT * FROM student WHERE sName LIKE '%老%'
    

     

    查找中间包含“老”字的字符。

    注意:即使数据的开头或结尾为空,依然可以匹配到数据,因为%不但代表任意个数的任意字符,它同样也可以代表没有字符。

    (8), 刷新权限(必须步骤):flush privileges; 。 

    添加唯一

    ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY] [索引名称] (字段名称,...)
    

     6.默认约束:指定某列的默认值。如男性同学较多,性别就可以默认为“男”。如果插入一条新的记录时没有为这个字段赋值,那么系统自动会为这个字段赋值为男。

    unsigned zerofill属性

    当数据的宽度小于类型的最大宽度时,则在数据前面自动填充0

    1,进入库;

    查询记录

    SELECT select_expr[,select_expr,...]
    [ 
        FROM table_reference
        [WHERE 条件]
        [GROUP BY {col_name | position } [ ASC | DESC], ... 分组]
        [HAVING 条件 对分组结果进行二次筛选]
        [ORDER BY {col_name | position } [ ASC | DESC], ... 排序]
        [LIMIT 限制显示条数]
    ]
    
    mysql> create table tb_dept2(id int(11)primary key,name varchar(22)unique,location varchar(50));
    

    日期时间类型

    Date 1000-01-01 ~ 9999-12-31

    TIME -838:59:59~838:59:59

    DateTime 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

    TimeStmp 1970-01-01 00:00:00 到2037年的之间的某一个时刻

    Year 存储1901~2155年的一个年份。

     

    3,多对多,需要新建中间表来保存对应关系表,外键咋中间关系表身上

    将查询结果插入到表中

    INSERT [INTO] tbl_name   [(字段名称1,......)]  SELECT 字段名称 FROM tbl_name  [WHERE 条件]
    
    例:mysql> create table tb_employee7(id int(11)primary key,name varchar(25)not null,deptld int(11)default 1111,salary float);
    

    示例:

    INSERT INTO userinfo(uName,uPhone,uIDCard)
    
    VALUES('江小白','010-89562321','5001234567814541X')
    

     

    向数据表中插入一条用户信息

     

    INSERT INTO userinfo(uName) VALUES('张小强')

    插入一条用户信息,但是只有姓名,其他字段自动留空或使用默认值(如果其中某个字段设置为不允许为null,而没有默认值的话,就必须要给这个字段赋值了)。

     

    INSERT INTO userinfo VALUES
    
    (3,'王小虎','010-89562321','5001234567814541X')
    

     

    可以省略字段名,但是所有的字段都必须按照顺序来依次赋值。包含主键ID(要按照顺序来填写主键值)

     

    一次性插入多条语句

    insert into student(sName,sAge,sSex,sPhone)
    
    values('小黑',20,'女','010-89562314'),
    
    ('小强',20,'男','020-89562314'),
    
    ('小红',20,'女','021-89562314'),
    
    ('小黄',20,'男','019-89562314'),
    
    ('小李',20,'女','022-89562314')
    

     

     

    alter table 表名称 change 旧字段名称 新字段名 类型;

    WHERE条件

    查询条件 符号 示例
    比较 =,<,>,<=,>=,!=,<>,!>,!<,<=> SELECT * FROM table_name WHHERE id = 1
    指定范围 BETWEEN AND,NOT BETWEEN AND SELECT * FROM table_name WHHERE id BETWEEN 1 AND 2
    指定集合 IN,NOT IN SELECT * FROM table_name WHHERE id IN(1,3,5,7,9) 集合内忽略大小写
    匹配字符 LIKE, NOT LIKE SELECT * FROM table_name WHHERE id LIKE '_2%'
    是否为空 IS NULL,IS NOT NULL SELECT * FROM table_name WHHERE id IS NULL
    多个查询条件 AND,OR SELECT * FROM table_name WHHERE user = 'admin' AND password = 'admin'

    模糊查询

    • %:代表0个,1个或者多个任意字符
    • _ :代表1个字符

    (1)单字段主键

    int整数类型

    只能存放整数

    and;和

    子查询

    (5)修改字段排序

    逻辑非not

    SELECT * FROM product
    
    WHERE not pName = '中兴z954'
    

     

     

    alter table 表名称 change 旧字段名称 新字段名 类型;

    创建数据表的同时将查询结果写入到数据表

    CREATE TABLE [IF NOT EXISTS] tbl_name (
      [(creat_defination)]
      select_statement
    

    (8)修改字段名

    SELECT 查询中的关键字

    1,索引

    删除数据表

    DROP TABLE [IF EXISTS] tbl_name[,tbl_name,...]
    

    下面介绍几个概念。是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的主键。例如:部分表的主键id,在表tb中有一个键deptld与这个id关联。

    多表查询

    concat(要拼接的数据);

    MYSQL中的函数

    例:定义数据表tb_employee5,并且在该表中创建外键约束

    SQL语句

    是一门专门用于数据库操作的语言,SQL语句的语法不仅仅适用于mysql数据库,同时也适用于几乎所有的主流数据库。当然不同公司出口的数据库在语法细节上还是有些差异。

     

    5,删除表;

    修改字段

    ALTER TABLE tbl_name MODIFY 字段名称 字段类型 [完整性约束条件] [FIRST | (AFTER  字段名称)]
    

     11.删除数据表

    phpMyAdmin

    phpMyAdmin是最常用的mysql客户端,它是基于php语言的。

    在桌面右下角的phpstudy图标上右击弹出菜单中选择phpMyAdmin就可以启动进入了。启动之后,需要输入用户与密码进行登陆,默认的用户名密码都是root。

     

    3,max();最大值;

    注释

    • 以‘-- ’ 为前缀
    • 以'#' 为前缀
    • 字段注释通过COMMENT '.....'进行注释

    例:创建员工表tb_employee1,结构如下表所示

    数据库与数据操作

    2,删除年龄在18-20

    修改数据库的编码方式

    ALTER { DATABASE | SCHEMA }  db_name [DEFAULT] CHARACTER SET [=] charset_name
    

    (1)在定义完列之后直接指定唯一约束

    mysql数据库基础知识

    int ;4个字节,存放-2000000000 到 2000000000 范围的整数;

    数据表操作

    语法规则:constraint 约束名 unique(字段名)

    小练习:

    1、 记忆背诵增删改查指定的语法。

    2、 手动新建一个数据库product,在其中新建数据表product,这个表中的字段:pid(主键)、pName(产品名)、pModel(型号)、pIntro(简介)、pFrom(产地)、pPrice(价格) 。

    3、 用insert语句添加10条不同的产品数据

    4、 查询

    a) 查询所有产品数据

    b) 查询所有产品的产品名和价格

    c) 查询所有价格在2000以上的产品

    d) 查询所有产品为重庆并且价格大于3000的产品

    e) 查询所有产地不是重庆的产品

    5、 将第5条记录的产品号修改为T1000

    6、 删除所有价格小于5元的产品。

     

    将第三题之后的sql语句复制到一个word文档中,然后组长检查组员,班长检查组长。

    3、5、6每题20分。

    第4题中的每个小题8分共40分

     

    命令行与高级查询

    增;主键在谁身上就先增加谁;

    删除外键

    (ALTER TABLE tbl_name DROP FOREIGN KEY)
    
    mysql> show create table tb_employee8G
    *************************** 1. row ***************************
           Table: tb_employee8
    Create Table: CREATE TABLE `tb_employee8` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(25) NOT NULL,
      `deptld` int(11) DEFAULT NULL,
      `salary` float DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
    1 row in set (0.00 sec)
    

    in关键字

    在一个集合中进行匹配,只要数据与集合中的任意一项相同,就以为数据满足条件。

     

    SELECT * FROM student WHERE sAddress IN('北京','西安','天津','山东')
    

     

    查找地址是 北京,西安,天津 或 山东的学生信息

     

    3;删除数据库;drop database 库名;

    UNION ALL

    (SELECT 语句 UNION SELECT 语句)
    

    注意:UNION 和 UNION ALL 的区别是UNION 去掉相同记录,UNION是简单的合并到一起

    语法规则:字段名 数据类型 default 默认值

    Date日期

    用于存储日期和时间

    4,索引的缺点;

    插入数据

    mysql> create table tb_employee8(id int(11)primary key auto_increment,name varchar(25)not null,deptld int(11),salary float);
    

    新建数据库

    1、 要指定数据库的名称。

    2、 通常选择utf8_unicode_ci字符集,在只有中文的情况下,可以选择gbk_chinese_ic或gb2312_chinese_ci 。

     

    3,在where后边添加子查询

    条件判断函数

    名称 描述
    IF(EXPR,V1,V2) 如果EXPR成立,返回V1,否则V2
    IFNULL(V1,V2) 如果V1 不为空,显示V1的值;否则V2
    CASE WHEN expr1 THEN v1 [WHEN expr2 THEN v2 ] [ ELSE vn] END CASE表示函数开始,END表示函数结束。如果表达式expr1成立时,返回v1.如果表达式expr2成立时,返回v2.以此类推,最后遇到ELSE时,返回vn的值。

    (6)更改表的数据引擎

    mysql数据库的备份与恢复

    即实体中的某个属性不能有多个值或者不能有重复的属性。

    外连接查询

    drop table 表1 表2 。。。
    

    mySQL中的数据类型

    在mySQL中每个字段,都必须明确它存放的数据的类型,一旦指定了类型,该字段(列)中的数据都必须符合这个类型的范围,否则就会引起错误。

     

    并且字符等类型需要指定内容的最大长度。

     

    2,删除索引;

    修改表的自增长值

    ALTER TABLE tbl_name AUTO_INCREMENT= 值
    

    (2)多字段联合主键

    右连接

    查询附表(JOIN关键字之后的表)中包含没有关联关系的数据在内的所有数据。

    SELECT * FROM score
    
    RIGHT JOIN student
    
    ON score.sid = student.sid
    

     

    删;外键在谁身上就先删谁;

    修改字段名称

    ALTER TABLE tbl_name CHANGE 旧字段名称 新字段名称 字段类型 [完整性约束条件] [FIRST | (AFTER  字段名称)]
    
    alter table 表名 modify 字段1 数据类型 first after 字段2
    例1:mysql> alter table tb_dept1 modify id int(11) first;
    例2:mysql> alter table tb_dept1 modify column2 int(11) after column1;
    

    _(下划线)通配符

    _ 通配符的作用与%类似,但是它只能匹配单个任意字符。

     

    例如:测量,温度

    什么是索引

    • 索引由数据库中一列或者多列组成,其作用是提高对表中数据的查询速度
    • 索引的优点是可以提高检索数据的速度
    • 索引的缺点是创建和维护索引需要耗费时间
    • 索引可以提高查询速度,减慢写入速度

     8.查看数据表的结构

    AVG求平均值

    格式:AVG(字段名)

    对指定的字段中(一列中) 的数据值进行求平均值的运算。

    SELECT AVG(sAge) FROM student
    
    SELECT AVG(sScore) FROM student WHERE sAge<=18
    
    SELECT AVG(sScore),sSex FROM student GROUP BY sSex
    

     

     

    *;表示全部

    查看上一步操作的警告信息

    SHOW WARNINGS
    

    unique和primary key的区别:一个表中可以有多个字段声明为unique,但只能有一个primary key声明;声明为primary key的列不允许有空值,但是声明为unique的字段允许空值的存在。

    左连接

    在两张表联合查询的时候,我要显示主表中包括没有关联关系的数据在内的所有数据。

     

    SELECT * FROM score
    
    LEFT JOIN student
    
    ON score.sid = student.sid
    

     

     
       

     

    2,删除年龄在18-20

    MYSQL中的数据类型

    alter table 旧表名 rename 新表名
    例:mysql> alter table tb_dept3 rename tb_deptment3;
    

    ORDER BY排序

    按照指定的字段的值的大小的次序,来排列查询的结果。

    SELECT * FROM student ORDER BY sScore
    
    //通过成绩来排列学生。默认为升序(从小到大)
    
    SELECT * FROM student ORDER BY sScore DESC
    
    //通过成绩来排列学生。添加DESC就是降序(从大到小)
    

     

     

    1,一对一唯一外键关联,一对一必须保证外键唯一性,加唯一性约束

    算数运算符

    符号 表达式 作用
    X1 X2 加法
    - X1-X2 减法
    * X1*X2 乘法
    / X1 / X2 除法
    DIV X1 DIV X2 除法
    % X1 % X2 取余
    MOD X1 MOD X2 取余

    删除被其他表关联的主表:先删除字表,再删除主表(或取消外键约束,删除主表)

    varchar字符类型

    可以存储任一字符,包括符号、数字、字母,但是他们都会被当成字符为处理。

    FOREIGN key(要把外键给那个字段的字段名)REFERENCES 关系表的表民(主键)

    通过SET形式插入记录

    INSERT [INTO] tbl_name SET 字段名称=值,......
    

    语法规则:字段名 数据类型 unique

    更改表结构:增加字段

    添加一个字段

    alter table student add sScore float null;
    

     

    其中:

    add 代表增加一列

    Null 代表这个字段允许空值。

    student 是数据表名

    sScore 是新增的字段名,后面是数据类型。

    三,DDL;数据定义语句;设计语句

    数据操作(DML)

    (2)在定义完所有列之后指定唯一约束

    注意事项:

    1、%不但代表任意个数的任意字符,它也可以空字符。

    2、数据尾部的空格可能会干扰通配符的搜索,比如:现有数据’abc  ’,如果它最后有一个或多个空格的话,则

    本文由1010cc时时彩经典版发布于1010cc安卓版,转载请注明出处:【1010cc时时彩经典版】mysql数据表的基本操作,

    关键词: