MySql

作者: 游_弋 | 来源:发表于2020-01-19 22:57 被阅读0次

    //连接mysql

    mysql -u root -h 47.101.205.200 -p //连接mysql

    exit; //退出mysql

    //启动停止mysql

    mysqld --console //window系统下 - 启动mysql

    mysqladmin -uroot shutdown //window系统下 - 停止mysql

    service mysqld start //centos系统下 - 启动mysql

    service mysqld stop //centos系统下 - 关闭mysql

    service mysqld restart //centos系统下 - 重启mysql

    service mysqld status //centos系统下 - 查看服务状态

    //展示数据库、数据库表等...

    SHOW DATABASES; //列出 MySQL 数据库管理系统的数据库列表。

    SHOW TABLES; //显示指定数据库的所有表

    select * from 数据表名; //读取数据库表

    SHOW COLUMNS FROM 数据表名; //显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

    //创建、删除、使用、数据库

    CREATE DATABASE 数据库名; //创建数据库

    drop database <数据库名>; //删除数据库

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

    //创建、删除数据库表

    ALTER TABLE store RENAME TO store999; //修改表名称

    DROP TABLE table_name; //删除数据库表

    //创建数据库表

    CREATE TABLE IF NOT EXISTS `table_name`(

      `table_id` INT UNSIGNED AUTO_INCREMENT,

      `table_title` VARCHAR(100) NOT NULL,

      `table_author` VARCHAR(40) NOT NULL,

      `submission_date` DATE,

      PRIMARY KEY ( `table_id` )

    )ENGINE=InnoDB DEFAULT CHARSET=utf8;

    // NOT NULL 在操作数据库时如果输入字段为null报错

    // AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。

    // PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。

    // ENGINE 设置存储引擎,CHARSET 设置编码。

    //增删改查表数据

    *** where多判断 where id=1 or id=2 or id=3 .....;  where id in (1,2,3...);

    *** SELECT name FROM person_tbl WHERE name REGEXP '^st' || 'ok$' || 'mar'; // 正则匹配开头 结尾 包含

    *** like匹配/模糊匹配 select * from store where info like '%服不服%';

    '%a'    //以a结尾的数据

    'a%'    //以a开头的数据

    '%a%'    //含有a的数据

    '_a_'    //三位且中间字母是a的

    '_a'    //两位且结尾字母是a的

    'a_'    //两位且开头字母是a的

    ------------------------------------------------------------------------------------------------------------

    insert into store(id,imgUrl,title,info,price,count) values (22,'imgUrl22','title22','info22',22,22); //在表中插入数据

    update store set id=999 where id=212; //在表中修改数据

    delete from store where id=1; //在表中删除数据

    //可以选择多个字段或表 , 分隔, where语句包含条件, limit设定返回的数量, offset设置开始查询的位置, BINARY 区分大小写,

    select id from store where BINARY id = 5 limit 3 offset 0; // 根据条件查询数据

    ------------------------------------------------------------------------------------------------------------

    //设置主键 放置重复 (重复报错)

    ALTER TABLE store ADD PRIMARY KEY ( id );

    //UNION [ALL | DISTINCT] 删除结果重复数据********************(不在mysql修改)

    select id from store union distinct select id from store;

    //ORDER BY读取的数据进行排序 asc升序 desc降序********************(不在mysql修改)

    select id from store order by id desc;

    //根据某个字段分组,并统计每个人有多少条记录

    SELECT id, COUNT(*) FROM store GROUP BY id;

    //可以实现在分组统计数据基础上再进行相同的统计, 例如我们将以上的数据表按名字进行分组,再统计每个人登录的次数: NULL 表示所有人的登录次数。

    SELECT id, SUM(singin) as singin_count FROM store GROUP BY id WITH ROLLUP;

    // coalesce 来设置一个可以取代 NUll 的名称, 参数说明:如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。

    SELECT coalesce(id,'总数'), SUM(count) FROM store GROUP BY id WITH ROLLUP;

    //如果字符集采用的是 utf8(万国码),需要先对字段进行转码然后排序:

    select id from store order by CONVERT(id using gbk);

    //查询数据库表中是否为NULL。

    WHERE id IS NULL; <==>  WHERE id IS NOT NULL;

    //查找多个表写法

    SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b WHERE a.runoob_author = b.runoob_author;

    //删除,添加或修改表字段

    ALTER TABLE store DROP price; //删除表字段

    ALTER TABLE store ADD table_id INT; //添加table_id字段,并定义数据类型:

    ALTER TABLE store change table_id price111 INT; //修改table_id字段为price111, 并定义数据类型;自动该字段默认为 NULL。

    alter table store modify price INT NOT NULL DEFAULT 100; //修改字段默认值

    ALTER TABLE store ALTER price SET DEFAULT 9999; //修改字段默认值

    //修改数据表类型

    SHOW TABLE STATUS like 'store'\G; //查看类型

    ALTER TABLE store ENGINE = InnoDB; //修改数据表类型 MYISAM

    相关文章

      网友评论

          本文标题:MySql

          本文链接:https://www.haomeiwen.com/subject/ekupbctx.html