• (1)mysql数据库操作


     1.安装mysql

    https://dev.mysql.com/downloads/windows/installer/8.0.html

    2.mysql启停

    运行mysql         net start mysql 
    停止mysql         net stop mysql

    3.cmd登录mysql

    mysql -h ip -u root -p(本地登录可以省略 -h 127.0.0.1 ??)

    mysql -h ip -u root -p  dbname

    4.查询

    (1)查询版本号及时间

    select version(),now();  #记得加分号

    (2)计算器

    select 1+2,upper('abc');

     (3)一行输入多个语句,用分号分割

    (4)允许换行,直到遇到分号才算是语句结束

    (5)取消输入

    用c 或者 ctrl +c   取消正在输入的sql语句

     (6)提示符含义

    5.创建数据库

    (1)查看现有数据库列表

    show databases;

    mysql数据库描述了用户访问权限

    (2)创建数据库

    create database name;

    (3)选择数据库

     首先要选择使用哪个数据库

    USE world;

    (4)删除数据库

    drop database name;

    (5)创建表

    CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

     (6)查看表

    SHOW TABLES;

     (7)查看表明细

    DESCRIBE tablename;

     (8)插入数据

    INSERT INTO pet VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);

     (9)更新

     6.查询2

    (1)查询全部

    SELECT * FROM pet;

    (2)查询指定行

    SELECT * FROM pet WHERE name = 'Bowser';

    (3)使用and 和or 多条件查询

    SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm') OR (species = 'dog' AND sex = 'f');

    (4)查询指定列

    SELECT name, birth FROM pet;

    (5)排重查询

    SELECT DISTINCT owner FROM pet;

    (6)排序查询

     SELECT name, birth FROM pet ORDER BY birth;

    默认为升序。 降序 字段后加 DESC

    (7)多列排序

    SELECT name, species, birth FROM pet  ORDER BY species, birth DESC;

     (8)日期计算

    SELECT name, birth, death, TIMESTAMPDIFF(YEAR,birth,death) AS age FROM pet WHERE death IS NOT NULL ORDER BY age;
    这里用 TIMESTAMPDIFF(YEAR,birth,death) 函数计算出了年龄

    (9)null

    对于查找null不能用算数运算符做比较,必须使用 is null 或 is not null

    (10)模糊查询

    查找以'b'开头的字符串

    SELECT * FROM pet WHERE name LIKE 'b%';

     查找以'fy'结尾的字符串

    SELECT * FROM pet WHERE name LIKE '%fy';

    查找包含'w'的字符串

    SELECT * FROM pet WHERE name LIKE '%w%';

    查找五个字符的字符串

    SELECT * FROM pet WHERE name LIKE '_____';

     (11)利用正则表达式函数匹配查询

    查找以'b'开头的字符串

    SELECT * FROM pet WHERE REGEXP_LIKE(name, '^b');

     查找以‘fy’结尾的字符串

    SELECT * FROM pet WHERE REGEXP_LIKE(name, 'fy$');

    查找包含'w'的字符串

    SELECT * FROM pet WHERE REGEXP_LIKE(name, 'w');

    查找五个字符的字符串

    SELECT * FROM pet WHERE REGEXP_LIKE(name, '^.....$');

    (12)统计行数

    SELECT COUNT(*) FROM pet;

    分组统计

    SELECT owner, COUNT(*) FROM pet GROUP BY owner;

    每种物种和性别组合的动物数量:

    SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;

    (12)多表查询

    INNER JOIN

    SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species FROM pet AS p1 INNER JOIN pet AS p2 ON p1.species = p2.species AND p1.sex = 'f' AND p2.sex = 'm';

     7 批处理

    D:UsersAven>mysql -uroot -p < F:PublishDatashare_update.sql

    8.常见查询

    查询最大值

    SELECT MAX(article) AS article FROM shop;

    查询最大值所在行

    SELECT article, dealer, price
    FROM   shop
    WHERE  price=(SELECT MAX(price) FROM shop);

    查询每组最大值所在行

    SELECT article, MAX(price) AS price
    FROM   shop
    GROUP BY article;

    6.设置密码

    非常有用的mysql启动参数—— --skip-grant-tables。 顾名思义,就是在启动mysql时不启动grant-tables,授权表。有什么用呢?当然是忘记管理员密码后有用。

    配置文件中加上skip-grant-tables,然后重启mysql服务,

    存储引擎

    作用:???

    show engines;

    存储引擎的选择

    ???

     

    远程连接

    默认密码为空就能远程连接上

     使用mysql数据库

    use mysql;

    将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。  (改表法)

    update user set host = '%' where user = 'root';

    设置远程连接密码(授权法)

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by 'password' WITH GRANT OPTION; 

    第一个 * 代表所有数据库,可以换成指定数据库

    第二个* 估计代表所有表,

    @前的' ' 里是用户名

    @后的' '里代表主机, %表示所有主机, 可以指定ip地址。

    identified by 'password' :表示设置远程登录密码

     安装mysql8.0时

    1. 使用强密码加密授权(推荐)

    8.0提供的心的授权方式,采用SHA256基础的密码加密方法.

    但是需要新版本的connector,目前和Connector/J最新的时8.0

    目前8.0的连接器和使用libmysqlclient8.0的社区驱动都支持这种新方法.

    如果客户端和应用程序不能更新来支持这种新授权方法,可以选择使用传统方法.

    2.传统授权方法(保留5.x版本兼容性)

    只有在以下几种方法中考虑传统方法:

    -应用程序无法升级来使用MySQL 8的connector和driver.(连接器和驱动).

    -现存应用程序重编译是不可行的.

    -新版的,特定语言的connector/driver还不可用.

  • 相关阅读:
    C语言:通过函数指针来完成两个数的加减乘除(函数指针当做参数使用)
    C语言:通过函数指针来完成两个数的加减乘除
    C语言:通过指针函数输出二维数组中每个学生的成绩
    C语言:通过指针对字符串进行拼接
    C语言:通过指针对数组元素进行排序
    C语言:通过返回指针的形式找出数组的最大值和最小值
    C语言:十进制进制转换为其他进制(思想:查表法)
    C语言:其他进制转换为十进制(方法二)
    C语言:其他进制数转换为十进制(方法一)
    socket programming Max size of tcp/ip socket Buffer?
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/6942259.html
Copyright © 2020-2023  润新知