当前位置: 首页 > news >正文

泉州做网站便宜网站建设进项填那个服务

泉州做网站便宜,网站建设进项填那个服务,哪里有做网站企业,贵阳网站设计方案MySQL 经典入门教程1 定义数据库中的表#xff1a;一行叫一条记录。每一列叫一个属性#xff0c;或一个字段。主键#xff1a;表中的某个特殊字段#xff0c;具有唯一的确定的值#xff0c;可以根据该字段唯一的确定一条记录外键#xff1a;表中的某个字段的值为另一张表…MySQL 经典入门教程1 定义数据库中的表一行叫一条记录。每一列叫一个属性或一个字段。主键表中的某个特殊字段具有唯一的确定的值可以根据该字段唯一的确定一条记录外键表中的某个字段的值为另一张表(也可以是自身)中的某个字段的值。2 MySQL 的数据类型2.1 数值TINYINT 小整型INT/INTEGER 整型BIGINT 长整型FLOAT 小数DOUBLIE 双精度小数2.2 日期DATE YYYY-MM-DDTIME HH:MM:SSYEAT YYYYDATETIME 混合TIMESTAMP 高精度2.3 字符串CHAR 定长字符串VARCHAR 不定长BLOB 二进制文件LONGBLOB 长二进制文件TEXT 长文本数据LONGTEXT 长文本数据注以上仅总结了常用类型并不是所有类型3 SQL语句3.1 数据库的创建CREATE DATABASE 数据库名 [参数]例如创建一个名为test的数据库设置字符集为utf-8CREATE DATABASE test CHARACTER SET utf8;出现下面的内容即说明创建成功。Query OK, 0 rows affected (0.00 sec)你可以使用下面的语句查看新创建的数据库SHOW DATABASES;选择需要操作的数据库USE test;执行完上面的语句后出现Database changed你所有的操作都将在test数据库中进行。3.2 创建表CREATE TABLE 表名 (列名 列数据属性 [约束]列名 列数据属性... ...);例如创建一个users表id是主键自增长。PRIMARY KEY约束 主键约束AUTO_INCREMENT约束 自增长CREATE TABLE users( id INTEGER PRIMARY KEY AUTO_INCREMENT, account VARCHAR(50), pwd VARCHAR(50), );3.3 插入数据INSERT INTO 表名 VALUES (值1, 值2,...,NULL...);这种插入方式一定要将所有的值都写上如果为空的话写NULL。值与列要一一对应主键如果设置为自增的话写NULL也可以指定所要插入数据的列向下面这样。INSERT INTO 表名 (列1, 列2,...) VALUES (值1, 值2,....);按回车后出现Query Ok, 1 row affected (0.05 sec)说明成功。否则请检查SQL语句。例如向刚刚创建的users表中插入一条数据INSERT INTO users VALUES(NULL,admin,admin);第一列是id主键自增不需要插入。3.4 查询数据SELECT * FROM 表名 [WHERE 条件] [参数];例如查询users表里的所有数据的 account 列。SELECT account FROM users;3.4.1 WHERE 查询可以给FROM后面的表起一个别名。例如:SELECT tn.id,tn.account FROM tablename AS tn WHERE tn.id 1;3.4.2 WHERE 后的条件语句WHERE后面可以写多种条件语句。1. 关系语句: ,,,2. 逻辑语句: AND,OR,NOT3. IS NULL: 是否为空4. BETWEEN:在两者之间WHERE u.id BETWEEN 11 AND 15;id 在11-15之间。5. IN:在..之中WHERE u.account IN (值1,值2,...);查询 account 在(值1,值2,...)之中的数据5. LIKE:模糊匹配WHERE u.id LIKE 通配符;通配符%:替代零个或多个字符_:替代一个字符WHERE u.account LIKE %A%;查询account字段中含有A的数据。[charlist]:字符列中的任何单一字符WHERE u.account LIKE [ASD]%; 查询以A S D 开头的数据。[!charlist]:不在字符列中的任何单一字符WHERE u.account LIKE [!ASD]%; 查询不以A S D 开头的数据3.4.3 聚合函数SELECT AVG(列名) FROM 表名1. AVG(列名):返回某一列的平均值2. COUNT(列名):返回匹配指定条件的行数3. FIRST(列名):返回指定的字段中第一个记录的值。4. LAST(列名):返回指定的字段中最后一个记录的值。5. MAX(列名):返回一列中的最大值。NULL 值不包括在计算中。6. MIN(列名):返回一列中的最小值。NULL 值不包括在计算中。7. SUM(列名):返回数值列的总数(总额)。8. UCASE(列名):把字段的值转换为大写。9. LCASE(列名):把字段的值转换为小写。10. MID(列名,开始位置截取长度):用于从文本字段中提取字符。SELECT MID(account,1,3) as uname FROM users;11. LEN(列名):返回文本字段中值的长度。12. ROUND(列名,小数位数):用于把数值字段舍入为指定的小数位数。13. CURDATE():返回当前日期。YYYY-MM-DD。14. CURTIME():返回当前时间。HH:MM:SS。15. NOW():返回当前时间。YYYY-MM-DD HH:MM:SS。16. YEAR(d)MONTH(d),DAY(d):分别返回参数的年月日。17. ADDDATE(d,n):在d的时间上加n天。18. SUBDATE(d,n):在d的时间上减n天。19. DATE_FORMAT(d,f):格式化时间d。%a 缩写星期名%b 缩写月名%c 月数值%D 带有英文前缀的月中的天%d 月的天数值(00-31)%e 月的天数值(0-31)%f 微秒%H 小时 (00-23)%h 小时 (01-12)%I(大写的i) 小时 (01-12)%i 分钟数值(00-59)%j 年的天 (001-366)%k 小时 (0-23)%l(小写的L) 小时 (1-12)%M 月名%m 月数值(00-12)%p AM 或 PM%r 时间12-小时(hh:mm:ss AM 或 PM)%S 秒(00-59)%s 秒(00-59)%T 时间, 24-小时 (hh:mm:ss)%U 周 (00-53) 星期日是一周的第一天%u 周 (00-53) 星期一是一周的第一天%V 周 (01-53) 星期日是一周的第一天与 %X 使用%v 周 (01-53) 星期一是一周的第一天与 %x 使用%W 星期名%w 周的天 (0星期日, 6星期六)%X 年其中的星期日是周的第一天4 位与 %V 使用%x 年其中的星期一是周的第一天4 位与 %v 使用%Y 年4 位%y 年2 位3.4.4 分组查询GROUP BY 语句用于结合聚合函数根据一个或多个列对结果集进行分组。SELECT 列名, 聚合函数 FROM 表名 WHERE 条件 GROUP BY 列名例如根据用户表中的role属性分组统计每组的人数SELECT role, COUNT(id) FROM users GROUP BY role;3.4.5 分组过滤在 SQL 中增加 HAVING 子句原因是WHERE 关键字无法与合计函数一起使用。例如根据用户表中的role属性分组统计每组的人数查找人数大于10的roleSELECT role, COUNT(id) FROM users GROUP BY role HAVING COUNT(id)10;3.4.6 结果排序ORDER BY 语句用于根据指定的列对结果集进行排序。默认为升序降序使用关键字DESC。例如根据用户表中的role属性分组统计每组的人数按照人数降序排列SELECT role, COUNT(id) count FROM users GROUP BY role ORDER BY count DESC;3.5 更新数据UPDATE 表名 SET 列名 新值 WHERE 条件WHERE的修改条件是可选的不写的话修改表的所有数据例如修改users表里的数据将admin用户的密码改为rootUPDATE users SET pwd root WHERE account admin;3.6 删除数据DELETE FROM 表名 WHERE 条件WHERE的修改条件是可选的不写的话删除表的所有数据4 表属性的修改4.1 表重命名ALTER TABLE 表名 RENAME 新表名;4.2 添加新的一列ALTER TABLE 表名 ADD 列名 列数据类型 [AFTER 插入位置]例如在users表的pwd字段后面添加一个role字段类型是INTEGERALTER TABLE users ADD role INTEGER AFTER pwd;4.3 修改列ALTER TABLE 表名 CHANGE 列名称 新列名称 新数据类型;例如修改users表里的pwd字段改为password类型是varchar(20)ALTER TABLE users CHANGE pwd password varchar(20);5 完整性约束约束对表中的列添加的一些限制条件。只有满足这些条件时才能数据才能插入。5.1 实体完整性主键不能为空5.2 参照完整性外键的值必须是某张表中存在的值可以为空5.3 用户自定义完整性唯一性约束某一列虽然不为主键但是依然不能重复。5.4 添加约束ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型(列名);例如给users表的role列添加外键约束引用自roles表的id列ALTER TABLE users ADD CONSTRAINT uq_phone FOREIGN KEY (role) REFERENCES roles (id);5.5 常见约束类型1. PRIMARY KEY: 主键2. CHECK:限制列中的值的范围。MySQL好像不支持3. UNIQUE:唯一性约束4. NOT NULL非空约束5. FOREIGN KEY:外键约束6 范式函数依赖:如果A依赖B那么当确定A值后B值也就确定了。例如在一张表中由于主键是唯一确定且不重复的。所以当主键的值确定了那么其他列的值也就确定了。我们便说其他列都依赖主键。完全函数依赖如果B函数依赖于A并且对于A的任何一个真子集A1,都有 B不依赖与A1,称A对B完全函数依赖。部分函数依赖如果B函数依赖于A但是B不完全函数依赖于A称B对A部分函数依赖。例如在一张表中有两列一列是用户名而另一列里某些行里记录的是用户的id而某些行里在这一列里记录的是用户所在部门的id那么用户名列便部分函数依赖于id列因为存在某些行依赖于id列的子集(记录是部门id的行)。传递函数依赖如果A函数依赖于BB函数依赖于C则称A传递函数依赖于C。6.1 1NF(第一范式)确保列不可分即每一列只描述一个属性即达到1NF6.2 2NF(第二范式)在1NF的基础上消除部分函数依赖即达到2NF。即每一个非主属性(非主键列)完全函数依赖于主键。例如可以将上面部分函数依赖的例子中的表改成两张表一张用户表一张部门表所有的用户名列都完全依赖于主键。便达到2NF。6.3 3NF(第三范式)在2NF的基础上消除传递函数依赖便达到3NF。即每一个非主属性(非主键列)即不部分依赖于主键也不传递依赖于主键。
http://www.huolong8.cn/news/1172/

相关文章: