如果create table t_student( sno int(10), sname varchar(20), ssex char(2), sbirthday date )这样创建一个表单,我要如何查询在1990出生的学生
时间: 2024-04-15 07:31:05 浏览: 13
若要查询在 1990 年出生的学生,可以使用以下 SQL 查询语句:
```sql
SELECT sname FROM t_student WHERE YEAR(sbirthday) = 1990;
```
这条查询语句使用了 YEAR() 函数来从 sbirthday 字段中提取出生年份,并将其与 1990 进行比较。如果出生年份与 1990 相等,则符合查询条件。通过这个条件,可以筛选出在 1990 年出生的学生,并返回他们的姓名(sname 字段)。
请注意,根据实际情况,确认表名和字段名是否正确,并确保 sbirthday 字段的数据类型为日期类型。此外,根据不同的数据库管理系统,YEAR() 函数的使用方式可能会有所不同。
相关问题
CREATE DATABASE IF NOT EXISTS person; USE person; CREATE TABLE students ( `Sno` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `Sname` VARCHAR(20) NOT NULL, `Ssex` VARCHAR(20) NOT NULL, `Sbirthday` DATETIME, `SClass` varchar(20) ); INSERT INTO students (sno, sname, ssex, sbirthday, sclass) VALUES ('108', '曾华', '男','1977-09-01,95033');报错
根据您提供的 SQL 语句,我注意到在插入数据时出现了一些错误。具体来说,日期值 `'1977-09-01,95033'` 的格式不正确。
请注意,日期值应该使用单引号 `'` 或双引号 `"` 包裹,并且日期和时间之间应使用空格分隔。此外,根据表结构,`sbirthday` 列的数据类型应该是 `DATETIME`,而不是 `VARCHAR`。
以下是修正后的 SQL 语句:
```sql
CREATE DATABASE IF NOT EXISTS person;
USE person;
CREATE TABLE students (
Sno INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
Sname VARCHAR(20) NOT NULL,
Ssex VARCHAR(20) NOT NULL,
Sbirthday DATETIME,
SClass varchar(20)
);
INSERT INTO students (Sno, Sname, Ssex, Sbirthday, SClass) VALUES ('108', '曾华', '男', '1977-09-01 00:00:00', '95033');
```
修正后的语句应该可以成功创建表并插入数据。请注意,我将日期值修改为 `'1977-09-01 00:00:00'`,确保日期格式正确并且与 `DATETIME` 数据类型匹配。
在mysql_test库中创建员工表tb_test,字段信息如下表所示。sno 编号 CHAR(5) 主键;sname 姓名 VARCHAR(20) 非空;ssex CHAR(1) 非空 男用1表示 女用2表示 其他用3表示;sbirthday 生日 DATE 非空;ssalary 工资 DOUBLE(10,2) 非空;scomm 奖金 DOUBLE(10,2) 可为空;smaj 领导 CHAR(5) 可为空
您可以使用以下MySQL语句在mysql_test库中创建员工表tb_test,包含sno、sname、ssex、sbirthday、ssalary、scomm和smaj这七个字段,其中sno是主键,sname、ssex、sbirthday和ssalary都是非空字段,ssex使用1、2、3表示男、女、其他,scomm和smaj可为空:
```
CREATE TABLE mysql_test.tb_test (
sno CHAR(5) PRIMARY KEY,
sname VARCHAR(20) NOT NULL,
ssex CHAR(1) NOT NULL CHECK (ssex IN ('1', '2', '3')),
sbirthday DATE NOT NULL,
ssalary DOUBLE(10,2) NOT NULL,
scomm DOUBLE(10,2),
smaj CHAR(5)
);
```
这将创建一个名为tb_test的表,包含sno、sname、ssex、sbirthday、ssalary、scomm和smaj这七个字段。其中,sno是主键,sname、ssex、sbirthday和ssalary都是非空字段,ssex使用1、2、3表示男、女、其他,scomm和smaj可为空。