当前位置: 首页>移动开发>正文

mysql_native_password不生效 mysqlpassword是什么

mysql启动:net start mysql

mysql关闭:net stop mysql

命令行进入mysql数据库:mysql -h localhost -u 数据库登录名

mysql 修改root密码:

方法1: 用SET PASSWORD命令

          mysql -u root

          mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 

方法2:用mysqladmin

              进入mysql/bin下

              mysqladmin -u root -p  password "newpass"

方法三:

              mysql> UPDATE mysql.user SET Password=PASSWORD('newpass')

                       -> WHERE User='bob' AND Host='%.loc.gov';

              mysql> FLUSH PRIVILEGES;   

mysql数据库密码丢失:

1. KILL掉系统里的MySQL进程;

2. 在命令提示符下(CMD),进入到MYSQL的BIN目录,用以下命令启动MySQL,以不检查权限的方式启动;

    mysqld-nt --skip-grant-tables

3. 然后重新开打一个命令提示符的窗口(CMD)用空密码方式使用root用户登录MySQL;

    mysql -u root -p

4. 修改root用户的密码;

    mysql> update mysql.user set password=PASSWORD('新密码') where User='root'; 
    mysql> flush privileges; 
    mysql> quit

查看数据库信息: show databases

连接一个数据库:use 数据库名         

创建一个数据库:create database 数据库名

删除一个数据库:drop database 数据库名

 

查看数据库中的表:show talbes

创建一个表:create table 表名(

        column_name column_type [null | not null ] [default default_value] [auto_increment] [primary key]

);  

其中[]中内容是可选项 column_name 列名  column_type列的类型

查看创建表结构:show create table 表名

DESCRIBE语法(获取有关列的信息):describe table_name

复制表结构:create table table_new like  table_old

对一个或多个表的重命名:rename table  to  new_table

 

表的修改:alter table table_name

[ add column_name_defination [ first | after column_name]],

[ change old_column_defination [first |after column_name]],

[ drop old_column_name],

[ drop primary key];

如:alter table mytalbe

-->add id int(5) primary key first,

-->change name username char(20) not null after password,

-->drop age,

-->;

表的查询:

select  [ all |distinct ] column_name

from table_name

where condition

group by column_name

having condition

order by column_name [ asc |desc ]

limit [ offset , row_count];

condition 指查询条件,group by实现最结果分组

having 后面的condition仍然指代查询条件,

asc和desc是排序方法,asc指正序排列,desc指倒叙排列

offset表示显示的起始行,row_count表示要显示的行数

 

select语句是SQL语句最复杂的一种类型,其中where语句是select中最重要的部分.where语句主要包含以下几中类型

(1)比较运算:

    = 检查是否相等

    != 检查是否不等

    > (或>=) 检查左边值是否大于(或大于等于)右边值

    < (或<=) 检查左边值是否小于(或小于等于)右边值

    [not] between 检查左边值是否在某个范围内

(2)like匹配:

    这里有两种可用的通配符:"_"和"%"

    "_"表示匹配一个字符,"%"表示匹配一个或多个字符

(3)IN操作符:

    用来表示指定列的值必须在枚举的几项中.例如:where column_name in(1,2,3)表示colmn_name的值必须在1,2,3中的记录才能被选出来.不在指定列的值用:Not In

(4)Exist和Not Exist操作符:

 

在两个表中联合查询:

例如:select a.name,b.age from mytable1 a,mytable2 b;

         或者:select a.name,b.age from mytable1 as a,mytable2 as b;

使用join语句:

INNER JOIN

内连接会返回两个表中所匹配的所有的行。假如 Employees 中的某些行与 Orders 中的行不匹配,那些行就不会被列出来。

    SELECT 字段1, 字段2, 字段3
    FROM 第一个表
    INNER JOIN 第二个表
    ON 第一个表.keyfield = 第二个表.foreign_keyfield

LEFT JOIN语句

左连接会从第一个表 (Employees) 那里返回所有的行,即使在第二个表 (Orders) 中没有匹配的行。假如 Employees 中的某些行没有在 Orders 中可匹配的行,这些行也会被列出来。
    SELECT field1, field2, field3
    FROM first_table
    LEFT JOIN second_table
    ON first_table.keyfield = second_table.foreign_keyfield

RIGHT JOIN

右连接会从第二个表格 (Orders) 那里返回所有的行,即使在第一个表格中没有可匹配的行。假如 Orders 中的某些行没有在 Employees 可匹配的行,那些行也会被列出。
    SELECT field1, field2, field3
    FROM first_table
    RIGHT JOIN second_table
    ON first_table.keyfield = second_table.foreign_keyfield

union和union all用法

UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

 

修改表中数据

数据添加:insert [into] table_name (column_name,...) values (values,...)

        例如:例: mysql>insert into mydatabase(name,password,age) values ('php','111111','60'');

数据更新:update table_name set column_name=values [where...]

数据删除:delete from table_name [where...]

 

http://www.w3school.com.cn/sql/sql_join.asp


https://www.xamrdz.com/mobile/45z1938617.html

相关文章: