设为首页 收藏本站
查看: 1115|回复: 0

[经验分享] sql常用语句使用方法

[复制链接]

尚未签到

发表于 2018-10-21 08:25:24 | 显示全部楼层 |阅读模式
  一、root用户密码丢失或重新设置
  方法1: 用SET PASSWORD命令
  首先登录MySQL。
  格式:mysql> set password for 用户名@localhost = password('新密码');
  例子:mysql> set password for root@localhost = password('123');
  方法2:用mysqladmin
  格式:mysqladmin -u用户名 -p旧密码 password 新密码
  例子:mysqladmin -uroot -p123456 password 123
  方法3:用UPDATE直接编辑user表
  首先登录MySQL。
  mysql> use mysql;
  mysql> update user set password=password('123') where user='root' and host='localhost';
  mysql> flush privileges;
  方法4:在忘记root密码的时候,可以这样
  1. 关闭正在运行的MySQL服务。
  3. 输入mysqld_safe --skip-grant-tables 回车。--skip-grant-tables
  的意思是启动MySQL服务的时候跳过权限表认证。
  5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
  6. 连接权限数据库: use mysql; 。
  6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
  7. 刷新权限(必须步骤):flush privileges; 。
  8. 退出 quit。
  9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
  二、检索数据:
  1.检索单个列:
  SELECT prod_name FROM Products;
  2.检索多个列:
  SELECT prod_id, prod_name, prod_price FROM Products;
  3.检索所有列:
  SELECT * FROM Products;
  4.检索不同的值
  SELECT DISTINCT vend_id FROM Products;
  5.限制显示结果:
  SELECT prod_name FROM Products  LIMIT 5; --显示前五行
  select name from usertb where age > 20 limit 0, 1; //限制从第一条开始,显示1条
  select name from usertb where age > 20 limit 1; //同上面的一个效果
  select name from usertb where age > 20 limit 4, 1; //显示从第五条开始,显示1条
  6.注释:
  1)在mysql脚本中,--后面的字段是注释信息,
  2)或者使用#进行注释,
  在命令行中执行的时候,注释的后面要加上;,表示注释结束。
  3)注释从/*开始,到*/结束,/*和*/之间的任何内容都是注释。这种方式常用于给代码加注释,就如这个例子演示的,这里定义了两个SELECT语
  句,但是第一个不会执行,因为它已经被注释掉了。
  三、排序检索数据
  1.按单个列进行排序
  SELECT prod_name FROM Products  ORDER BY prod_name;
  除了指示DBMS软件对prod_name列以字母顺序排序数据的ORDER BY子句外,这条语句与SELECT prod_name FROM Products;是一样的。
  注意:通常,ORDER BY子句中使用的列将是为显示而选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的
  2.按多个列进行排序
  SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price, prod_name;
  重要的是理解在按多个列排序时,排序的顺序完全按规定进行。换句话说,对于上述例子中的输出,仅在多个行具有相同的prod_price值时才
  对产品按prod_name进行排序。如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。
  3.按列位置进行排序:
  SELECT prod_id,prod_price,prod_name FROM Products ORDER BY 2,3;
  SELECT清单中指定的是选择列的相对位置而不是列名。ORDER BY 3表
  示按SELECT清单中的第二个列prod_name进行排序。ORDER BY 2,3表示先按prod_price,再按prod_name进行排序。
  这一技术的主要好处在于不用重新输入列名。但它也有缺点。首先,不明确给出列名有可能造成错用列名排序。其次,在对SELECT清单进行更
  改时容易错误地对数据进行排序(忘记对ORDER BY子句做相应的改动)。最后,如果进行排序的列不在SELECT清单中,显然不能使用这项技
  术。
  按非选择列排序
  显然,当根据不出现在SELECT清单中的列进行排序时,不能采用这项技术。但是,如果有必要,可以混合匹配使用实际列名和相对列位置。
  4.指定排序方向
  数据排序不限于升序排序(从A到Z),这只是默认的排序顺序。还可以使用ORDER BY子句进行降序(从Z到A)排序。为了进行降序排序,必须指定DESC关键字。
  SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price DESC;
  多列排序:
  SELECT prod_id, prod_price, prod_name FROM Products ORDER BY prod_price DESC, prod_name;
  DESC关键字只应用到直接位于其前面的列名。在上例中,只对prod_price列指定DESC,对prod_name列不指定。因此,prod_price列以降序排
  序,而prod_name列(在每个价格内)仍然按标准的升序排序。
  如果想在多个列上进行降序排序,必须对每一列指定DESC关键字。
  与DESC相对的是ASC(或ASCENDING),在升序排序时可以指定它。但实际
  上,ASC没有多大用处,因为升序是默认的(如果既不指定ASC也不指定DESC,则假定为ASC)。
  四、使用WHERE过滤数据
  1.SELECT prod_name, prod_price FROM Products WHERE prod_price = 3.49;--使用等于,不等于则使用!=
  注意:在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误
  2.WHERE的操作符:
  =:等于;或!=:不等于;=;BETWEEN指定的两个值之间;IS NULL:为空;
  示例:检索单个值:
  SELECT prod_name, prod_price FROM Products WHERE prod_price < 10;
  SELECT prod_name, prod_price FROM Products WHERE prod_price < 10;
  不匹配检查:
  SELECT vend_id, prod_name FROM Products WHERE vend_id  'DLL01';
  范围值检查
  SELECT prod_id,prod_price,prod_name FROM Products WHERE prod_price BETWEEN 5.99 AND 9.49;
  空值检查:
  SELECT prod_name FROM Products WHERE prod_price IS NULL;
  提示:何时使用引号
  如果仔细观察上述WHERE的条件,会看到有的值括在单引号内,而有的值未括起来。单引号用来限定字符串。如果将值与字符串类型的列进行比较,就需要限定引号。用来与数值列进行比较的值不用引号。
  五、高级数据过滤:多个WHERE子句用AND或者OR连接
  1.AND操作符
  SELECT prod_id, prod_price, prod_name FROM Products WHERE vend_id = 'DLL01' AND prod_price

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-624289-1-1.html 上篇帖子: sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法 下篇帖子: Sql效能优化总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表