• 数据库简单学习


    新学,命令全都敲了一遍,感兴趣就一条条跟着敲吧(咳咳)

    数据库连接:mysql -u root -p

    创建数据库:create databases 数据库名;

    显示数据库:show databases;

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

    选择数据库:use 数据库名;

    mysql支持数据类型:严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC);近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION);

    (主要是INT型)

    (主要是VARCHAR型)

    创建数据表:create table table_name (column_name column_type);

    删除数据表:drop table table_name;

    插入数据:insert into table_name ( field1, field2,...fieldN )  values( value1, value2,...valueN )

    查询数据:select column_name,column_name from table_name  [where Clause]  [limitN] [ offset M];

    where设置条件:select field1, field2,...fieldN from table_name1, table_name2... [where condition1 [AND [OR]] condition2.....];

    修改或者更新数据:update table_name set field1=new-value1, field2=new-value2 [where Clause];(更新某一条记录的某个字段的值)

    添加或删除数据表字段:alter table jzytab1 drop i;alter table jzytab1 add i INT;

    删除行记录:delete from table_name [where Clause];

    获取某一字段中含有某些字符的所有记录:select field1, field2,...fieldN  from table_name where field1 like condition1 [AND [OR]] filed2 = 'somevalue';(%代表任意字符)

    连接两个select语句,去重得到不重复字段值:

    select expression1, expression2, ... expression_n from tables [where conditions

    union [ALL | DISTINCT

    select expression1, expression2, ... expression_n from tables[whereconditions];

    例如:select country from Websites
    union
    select country from apps
    order by country;

    排序数据:select field1, field2,...fieldN from table_name1, table_name2... order by field1, [field2...] [asc [desc]];

    对一个或者多个列的结果集进行分组,然后再分组的基础上使用count计数,或使用sum求和,或使用ave求平均值:select column_name function(column_name) from table_name where column_name operator value group by column_name;

    实现在分组统计数据基础上再进行相同的统计:select name, sum(singin) as singin_count from jzytab2 group by name with rollup;

    连接(内连接,左连接,右连接):直接上例子

    select a.id,a.zuozheb.count from jzytab1 a inner join jzytab2 b on  a.zuozhe= b.zuozhe;

    左连接:

     select a.id,a.zuozhe, b.count from jzytab1 a left join jzytab2 b on a.zuozhe= b.zuozhe;

    右连接:

    select a.id,a.zuozhe, b.count from jzytab1 a right join jzttab2 b on a.zuozhe= b.zuozhe;

    值为NULL时,判断条件不能是=NULL或者!=NULL,只能用IS NULL或者IS NOT NULL:select  * from jzytab1 where city IS NULL;

    正则表达式简单介绍:^st:以st开头的单词。ok$:以ok结尾的单词。o{2}:连续出现两个o的单词。

    举例子喽:

    SELECT name FROM jzytab1 WHERE name REGEXP '^st';

    SELECT name FROM jzytab1 WHERE name REGEXP 'ok$';

    SELECT name FROM jzytab1 WHERE name REGEXP 'mar';

    SELECT name FROM jzytab1 WHERE name REGEXP '^[aeiou] | ok$';(以元音字符开头或以'ok'字符串结尾的所有数据)

    数据库事务理解:主要用于处理操作量大,复杂度高的数据。例如,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务(四特性:一致同意持久隔离原子)!

    在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作。执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。(出现问题了:设置自动提交之后,又禁用了自动提交。当开始一个事务时,插入一条记录后回滚不回去了。。。。。。)

    修改字段类型及名称:alter table 表名 modify city CHAR(10);以前是VARCHAR(30)或者:

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

    修改字段的默认值:(失败了||=_=||    为啥呢):alter table jzytab1 alter i set default 1000;

    alter table jzytab1

    -> modify j bigint NOT NULL DEFAULT 100;

    修改数据表的类型(修改存储引擎):alter table jzytab1  ENGINE = MYISAM;

    MySQL常用的四种引擎:MyISAM存储引擎(不支持事务、也不支持外键,优势是访问速度快)、InnoDB存储引擎(提供了具有提交、回滚和崩溃恢复能力的事务安全)、MEMORY存储引擎(memory类型的表访问非常的快,因为它的数据是放在内存中的,并且默认使用HASH索引)、MERGE存储引擎(一组MyISAM表的组合,这些MyISAM表必须结构完全相同)。

    修改表名:alter table jzytab1 rename to jzytab2;

    索引:单列索引和组合索引。(一个表可以有多个单列索引)组合索引:一个索引包含多个列。

    创建索引:create index 索引名 on 表名(列名(length));

    添加索引:alter table 表名 add index 索引名(列名);

    显示索引信息:show index from 表名;G

  • 相关阅读:
    机器学习之--数据构造,函数图显示
    python 用xlwt包把数据导出到excel表中
    python实现Hbase
    Hbase命令
    scrapy Formrequest用法(豆瓣登录案例)
    scrapy meta不用pipe用命令-o
    scrapy之Crawspider 腾讯招聘实战案例
    scrapy选择器归纳
    scrapy response.xpath可以提取包含字符XX的标签
    初涉.....编码__列表__字典
  • 原文地址:https://www.cnblogs.com/westlife-11358/p/9296932.html
Copyright © 2020-2023  润新知